type CheatType = 'P1' | 'P2' | 'P3' | 'P4' | 'P5' | 'P6';
interface CheatViolation {
    type: CheatType;
    message: string;
    stack?: string;
    timestamp: number;
}
type CheatHandler = (violation: CheatViolation) => void;
declare class CheatDetectorImpl {
    private enabled;
    private violations;
    private handlers;
    private mode;
    /**
     * Enable cheat detection.
     * @param mode - 'warn' logs to console, 'throw' throws error, 'collect' silently collects
     */
    enable(mode?: 'warn' | 'throw' | 'collect'): void;
    disable(): void;
    isEnabled(): boolean;
    /**
     * Report a cheat violation.
     */
    report(type: CheatType, message: string): void;
    /**
     * Get all collected violations.
     */
    getViolations(): CheatViolation[];
    /**
     * Clear collected violations.
     */
    clear(): void;
    /**
     * Add a violation handler.
     */
    onViolation(handler: CheatHandler): () => void;
    /**
     * Assert no violations occurred (for tests).
     */
    assertNoViolations(): void;
    /**
     * P1: Wrap runtime to detect _components access.
     */
    wrapRuntime<T extends object>(runtime: T): T;
    /**
     * P2: Check if a value is a component reference (should be mount string).
     */
    checkNotComponentRef(value: unknown, context: string): void;
    /**
     * P5: Detect _localServices usage.
     */
    reportLocalServiceBypass(mount: string): void;
    /**
     * P6: Detect ghost casting.
     */
    reportGhostCasting(shellTag: string): void;
}
export declare const CheatDetector: CheatDetectorImpl;
export {};
//# sourceMappingURL=CheatDetector.d.ts.map