export declare const APPSHOT_DIR = ".omk/appshots";
export declare const MAX_SIZE_BYTES: number;
export interface AppShotResult {
    ok: boolean;
    path?: string;
    relativePath?: string;
    metadataPath?: string;
    error?: string;
}
export interface AppShotMetadata {
    schemaVersion: 1;
    capturedAt: string;
    platform: NodeJS.Platform;
    captureType: "active-window" | "screen" | "clipboard" | "selection";
    app?: {
        name?: string;
        bundleId?: string;
        pid?: number;
    };
    window?: {
        title?: string;
        bounds?: {
            x: number;
            y: number;
            width: number;
            height: number;
        };
    };
    cwd: string;
    runId?: string;
    goalId?: string;
    privacy?: {
        redactionApplied: boolean;
    };
}
export interface CaptureAppShotOptions {
    captureType?: "active-window" | "screen" | "clipboard" | "selection";
    platform?: NodeJS.Platform | string;
    env?: NodeJS.ProcessEnv;
    timeoutMs?: number;
    runId?: string;
    goalId?: string;
    procVersion?: string;
}
export declare function validateMagicBytes(buf: Buffer): {
    ok: boolean;
    ext: string;
};
export declare function generateAppShotPath(projectRoot: string, ext: string): {
    fullPath: string;
    relativePath: string;
};
export declare function isWslEnvironment(env?: NodeJS.ProcessEnv, procVersion?: string): boolean;
export declare function captureAppShot(projectRoot?: string, options?: CaptureAppShotOptions): AppShotResult;
export declare function getAppShotDir(projectRoot?: string): string;
export interface AppShotEntry {
    relativePath: string;
    fullPath: string;
    metadataPath: string;
    size: number;
    mtimeMs: number;
}
export declare function listAppShots(projectRoot?: string): AppShotEntry[];
export interface CleanResult {
    deleted: string[];
    skipped: string[];
}
export declare function cleanAppShots(days: number, dryRun: boolean, projectRoot?: string): CleanResult;
