import { type SdkMcpTool } from "./sdk-provider-boundary.js";
export interface ClineMcpServerAuthStatus {
    serverName: string;
    oauthSupported: boolean;
    oauthConfigured: boolean;
    lastError: string | null;
    lastAuthenticatedAt: number | null;
}
export interface ClineMcpServerAuthResult {
    serverName: string;
    authorized: true;
    message: string;
}
export interface ClineMcpToolBundle {
    tools: SdkMcpTool[];
    warnings: string[];
    dispose: () => Promise<void>;
}
export interface ClineMcpRuntimeService {
    createToolBundle(): Promise<ClineMcpToolBundle>;
    getAuthStatuses(): Promise<ClineMcpServerAuthStatus[]>;
    authorizeServer(input: {
        serverName: string;
        timeoutMs?: number;
        onAuthorizationUrl?: (url: string) => void;
    }): Promise<ClineMcpServerAuthResult>;
}
export interface ClineMcpOauthCallbackResponse {
    statusCode: number;
    body: string;
}
export interface CreateClineMcpRuntimeServiceOptions {
    onAuthStatusesChanged?: (statuses: ClineMcpServerAuthStatus[]) => void | Promise<void>;
}
export declare function handleClineMcpOauthCallback(requestUrl: URL): Promise<ClineMcpOauthCallbackResponse | null>;
export declare function startOauthCallbackListener(timeoutMs: number): Promise<{
    redirectUrl: string;
    awaitAuthorizationCode: () => Promise<string>;
    close: () => Promise<void>;
}>;
export declare function createClineMcpRuntimeService(options?: CreateClineMcpRuntimeServiceOptions): ClineMcpRuntimeService;
//# sourceMappingURL=cline-mcp-runtime-service.d.ts.map