import type { MigrationPlan } from "./migration-spec";
export type MigrationOAuthMetadataFetch = (input: string, init: {
    readonly headers: Readonly<Record<string, string>>;
    readonly signal: AbortSignal;
}) => Promise<{
    readonly ok: boolean;
    readonly status: number;
    readonly json: () => Promise<unknown>;
}>;
export interface ResolveMigrationOAuthAuthorizationUrlsOptions {
    readonly fetch?: MigrationOAuthMetadataFetch;
    readonly timeoutMs?: number;
}
export declare const migrationOAuthClientPlanKey: (client: MigrationPlan["oauthClients"][number]) => string;
export declare const migrationOAuthClientNeedsAuthorizationUrlResolution: (client: MigrationPlan["oauthClients"][number]) => boolean;
export declare const migrationOAuthClientAuthorizationUrlResolutionSource: (client: MigrationPlan["oauthClients"][number]) => string;
export declare const resolveMigrationOAuthAuthorizationUrls: (plan: MigrationPlan, options?: ResolveMigrationOAuthAuthorizationUrlsOptions) => Promise<ReadonlyMap<string, string>>;
export declare const migrationOAuthAuthorizationUrlFor: (client: MigrationPlan["oauthClients"][number], resolvedUrls: ReadonlyMap<string, string>) => string;
//# sourceMappingURL=migration-oauth-metadata.d.ts.map