import { type N8nOAuth2FlowResult } from 'n8n-workflow';
import { CacheService } from '../../services/cache/cache.service';
import { OAuthTokenVerifierProxy } from '../../services/oauth-token-verifier-proxy.service';
import type { N8nOAuth2Flow } from '../../services/oauth2-flow-proxy.service';
import { ProtectedResourceRegistry } from '../../services/protected-resource.registry';
import { UrlService } from '../../services/url.service';
import { OAuthServerService } from './oauth-server.service';
export declare class OAuth2FlowService implements N8nOAuth2Flow {
    private readonly oauthServerService;
    private readonly resourceRegistry;
    private readonly urlService;
    private readonly cacheService;
    private readonly tokenVerifier;
    constructor(oauthServerService: OAuthServerService, resourceRegistry: ProtectedResourceRegistry, urlService: UrlService, cacheService: CacheService, tokenVerifier: OAuthTokenVerifierProxy);
    begin(resourceUrl: string, metadata?: Record<string, string>): Promise<string>;
    complete(code: string, state: string): Promise<N8nOAuth2FlowResult>;
}
