export type RuntimeBindingState = {
    status: "unpaired" | "paired";
    instanceId?: string;
    userId?: string;
    schedulerBaseUrl?: string;
    /**
     * Plain runtime access token issued by the scheduler.
     * Stored locally with 0600 permissions so child MCP processes can authenticate
     * scheduler calls without exposing the token in public status APIs.
     */
    accessToken?: string;
    tokenHash?: string;
    createdAt?: string;
    updatedAt?: string;
    revokedAt?: string;
};
export declare function normalizeSchedulerBaseUrl(value: unknown): string | undefined;
export declare function getRuntimePairingCode(): string;
export declare function getRuntimeBindingFilePath(): string;
export declare function getRuntimeTokenStoreFilePath(): string;
export declare function buildRuntimeTokenKey(userId: unknown, serverBaseUrl: unknown): string;
export declare function saveScopedRuntimeAccessToken(input: {
    userId: string;
    serverBaseUrl: string;
    accessToken: string;
}): string;
export declare function getScopedRuntimeAccessToken(userId: unknown, serverBaseUrl: unknown): string | undefined;
export declare function clearScopedRuntimeAccessToken(userId: unknown, serverBaseUrl: unknown): boolean;
export declare function loadRuntimeBinding(): RuntimeBindingState;
export declare function getRuntimeBindingPublicState(): Omit<RuntimeBindingState, "tokenHash" | "accessToken"> & {
    paired: boolean;
};
export declare function hasRuntimeBinding(): boolean;
export declare function validateRuntimeBindingToken(token: unknown): boolean;
export declare function getRuntimeAccessToken(userId?: unknown, serverBaseUrl?: unknown): string | undefined;
export declare function validateRuntimePairingCode(code: unknown): boolean;
export declare function saveRuntimeBinding(input: {
    accessToken: string;
    instanceId?: string;
    userId?: string;
    schedulerBaseUrl?: string;
}): RuntimeBindingState;
export declare function clearRuntimeBinding(): void;
//# sourceMappingURL=runtime-binding.d.ts.map