export interface ScanState {
    done: boolean;
    reason: string;
    filesScanned?: number;
    scannedAt?: string;
    personalDir?: string;
}
export interface WatchState {
    done: boolean;
    reason: string;
    dirPath?: string;
    eventCount?: number;
    startedAt?: string;
}
export interface McpState {
    done: number;
    skipped: number;
    total: number;
    needsWrite: string[];
    written: string[];
}
export interface DetectProjectResult {
    name: string;
    source: 'package.json' | 'folder-basename' | 'override' | 'no-project';
    packageJsonPath?: string;
}
export interface SetupOptions {
    cwd?: string;
    homedir?: string;
    noRules?: boolean;
    forceRules?: boolean;
    projectName?: string;
    skipMcp?: boolean;
    skipWatch?: boolean;
    skipScan?: boolean;
    dir?: string;
    dryRun?: boolean;
}
export interface SetupResult {
    success: boolean;
    project: DetectProjectResult;
    scan: ScanState;
    watch: WatchState;
    mcp: McpState;
    errors: string[];
    warnings: string[];
}
export declare function checkScanState(cwd: string): ScanState;
export declare function checkWatchState(project: string): WatchState;
export declare function checkMcpState(homedir?: string): McpState;
export declare function detectProject(cwd: string, override?: string): DetectProjectResult;
export declare function isDaemonRunning(port?: number, timeoutMs?: number): Promise<boolean>;
export declare function runSetup(opts?: SetupOptions): Promise<SetupResult>;
//# sourceMappingURL=setup.d.ts.map