/**
 * Watch flow module
 *
 * Provides the interactive experience for starting the watch daemon,
 * including transcript destination org selection using @clack/prompts.
 */
/**
 * Result of the onPrepare callback
 */
export type PrepareResult = {
    privateOrgs: Array<string>;
    currentDestination: string | null;
    currentGarbageCollect: "enabled" | "disabled" | null;
    isRunning: boolean;
};
/**
 * Result of the onStartDaemon callback
 */
export type StartDaemonResult = {
    success: true;
    pid: number;
    logFile: string;
    transcriptsDir: string;
} | {
    success: false;
    error: string;
};
/**
 * Callbacks for the watch flow
 */
export type WatchFlowCallbacks = {
    onPrepare: () => Promise<PrepareResult>;
    onStartDaemon: (args: {
        org: string;
        garbageCollect: "enabled" | "disabled";
    }) => Promise<StartDaemonResult>;
};
/**
 * Result of the watch flow
 */
export type WatchFlowResult = {
    org: string;
    pid: number;
    logFile: string;
    statusMessage: string;
} | null;
/**
 * Execute the interactive watch daemon startup flow
 *
 * This function handles the complete watch startup UX:
 * 1. Stops existing daemon and loads config via onPrepare
 * 2. Selects transcript destination org (auto or prompted)
 * 3. Starts daemon via onStartDaemon
 * 4. Shows note with PID and log file
 *
 * @param args - Flow configuration
 * @param args.forceSelection - Force re-selection of transcript destination
 * @param args.callbacks - Callback functions for prepare and daemon startup
 *
 * @returns Watch result on success, null on failure or cancellation
 */
export declare const watchFlow: (args: {
    forceSelection?: boolean | null;
    callbacks: WatchFlowCallbacks;
}) => Promise<WatchFlowResult>;
//# sourceMappingURL=watch.d.ts.map