interface OAuth2AuthorizationServerMetadata {
    issuer: string;
    authorization_endpoint: string;
    token_endpoint: string;
    jwks_uri?: string;
    registration_endpoint?: string;
    scopes_supported?: any[];
    response_types_supported: any[];
    response_modes_supported?: any[];
    grant_types_supported?: any[];
    token_endpoint_auth_methods_supported?: any[];
    token_endpoint_auth_signing_alg_values_supported?: any[];
    service_documentation?: string;
    ui_locales_supported?: any[];
    op_policy_uri?: string;
    op_tos_uri?: string;
    revocation_endpoint?: string;
    revocation_endpoint_auth_methods_supported?: any[];
    revocation_endpoint_auth_signing_alg_values_supported?: any[];
    introspection_endpoint?: string;
    introspection_endpoint_auth_methods_supported?: any[];
    introspection_endpoint_auth_signing_alg_values_supported?: any[];
    code_challenge_methods_supported?: any[];
}
interface OAuth2ClientMetadata {
    redirect_uris?: string[];
    token_endpoint_auth_method?: (typeof TOKEN_ENDPOINT_AUTH_METHODS)[number];
    grant_types?: (typeof GRANT_TYPES)[number][];
    response_types?: ('code' | 'token')[];
    client_name?: string;
    client_uri?: string;
    logo_uri?: string;
    scope?: string;
    contacts?: string[];
    tos_uri?: string;
    policy_uri?: string;
    jwks_uri?: string;
    jwks?: any;
    software_id?: string;
    software_version?: string;
}
declare const TOKEN_ENDPOINT_AUTH_METHODS: readonly ["none", "client_secret_post", "client_secret_basic"];
declare const GRANT_TYPES: readonly ["authorization_code", "implicit", "password", "client_credentials", "urn:ietf:params:oauth:grant-type:jwt-bearer", "urn:ietf:params:oauth:grant-type:saml2-bearer"];
interface TokenRequestOAuth2 {
    grant_type: 'authorization_code';
    code?: string;
    redirect_uri?: string;
    client_id?: string;
}
interface TokenResponseOAuth2 {
    access_token: string;
    token_type: string;
    expires_in?: number;
    refresh_token?: string;
    scope?: string;
}
interface AuthorizationRequestOAuth2 {
    response_type: 'code';
    client_id: string;
    redirect_uri?: string;
    scope?: string;
    state?: string;
}
interface AuthorizationResponseOAuth2 {
    code: string;
    state?: string;
}

export { type AuthorizationRequestOAuth2, type AuthorizationResponseOAuth2, GRANT_TYPES, type OAuth2AuthorizationServerMetadata, type OAuth2ClientMetadata, TOKEN_ENDPOINT_AUTH_METHODS, type TokenRequestOAuth2, type TokenResponseOAuth2 };
