import type { FastifyInstance } from "fastify";
export interface GatewayState {
    connected: boolean;
    lastConnectedAt: string | null;
    lastHeartbeatAt: string | null;
}
export interface OpenCodeState {
    installed: boolean;
    running: boolean;
    version: string | null;
}
export interface StatusResponse {
    version: string;
    machineKey: string | null;
    loggedIn: boolean;
    user: UserInfo | null;
    gateway: GatewayState;
    opencode: OpenCodeState;
    capabilities: {
        hasGit: boolean;
        hasOpenCode: boolean;
        warnings: string[];
    };
    projects: Array<{
        projectId: string;
        name: string;
        path: string;
        watcherRunning: boolean;
        lastFsSeq: number;
    }>;
    lastError: unknown;
}
export interface UserInfo {
    email?: string;
    username?: string;
    provider?: string;
}
export interface StatusProviders {
    getMachineKey?: () => string | null;
    getLoggedIn?: () => boolean;
    getUserInfo?: () => UserInfo | null;
    getGatewayState?: () => GatewayState | Promise<GatewayState>;
    isOpenCodeRunning?: () => boolean;
    getLastError?: () => unknown;
    isWatcherRunning?: (projectId: string) => boolean;
}
export declare function setStatusProviders(providers: StatusProviders): void;
export declare function statusRoutes(app: FastifyInstance): Promise<void>;
//# sourceMappingURL=status.d.ts.map