import type { OpenAPIV3 } from 'openapi-types'; import { OAuthClient, type InteractiveAuthResult } from './oauthClient.js'; import type { LoadedApi } from '../types.js'; import type { AuthStore } from './authStore.js'; export interface RequirementFailure { requirement: string[]; reason: string; missingEnv?: string[]; } export type ResolvedSchemeResult = { status: 'resolved'; authUsed: string; resolved: { type: 'apiKey'; schemeName: string; in: 'query' | 'header' | 'cookie'; name: string; value: string; } | { type: 'oauth2'; schemeName: string; token: string; } | { type: 'http'; schemeName: string; scheme: 'bearer' | 'basic'; token?: string; username?: string; password?: string; }; } | { status: 'interactive'; interactiveAuth: InteractiveAuthResult; } | { status: 'failed'; failedReason: string; missingEnv: string[]; }; export interface SelectedSchemeStoredAuth { kind: 'oauth2' | 'apiKey' | 'http-bearer'; apiName: string; schemeName: string; token: string; expiresAt?: number; } interface ResolveSchemeInput { api: LoadedApi; schemeName: string; requestedScopes?: string[]; oauthClient: OAuthClient; env: NodeJS.ProcessEnv; authStore?: AuthStore; } export declare function resolveSchemeForRequest(input: ResolveSchemeInput): Promise; export declare function authenticateSelectedScheme(input: ResolveSchemeInput & { token?: string; onInteractive?: (payload: InteractiveAuthResult) => void; }): Promise; export declare function getSecurityScheme(api: LoadedApi, schemeName: string): OpenAPIV3.SecuritySchemeObject; export {};