import { AccessTokenRequest, AccessTokenRequestOpts, AccessTokenResponse, AuthorizationServerOpts, EndpointMetadata, IssuerOpts, OpenIDResponse } from './types';
export declare class AccessTokenClient {
    acquireAccessTokenUsingIssuanceInitiation({ issuanceInitiation, asOpts, pin, codeVerifier, code, redirectUri, metadata, }: AccessTokenRequestOpts): Promise<OpenIDResponse<AccessTokenResponse>>;
    acquireAccessTokenUsingRequest({ accessTokenRequest, isPinRequired, metadata, asOpts, issuerOpts, }: {
        accessTokenRequest: AccessTokenRequest;
        isPinRequired?: boolean;
        metadata?: EndpointMetadata;
        asOpts?: AuthorizationServerOpts;
        issuerOpts?: IssuerOpts;
    }): Promise<OpenIDResponse<AccessTokenResponse>>;
    createAccessTokenRequest({ issuanceInitiation, asOpts, pin, codeVerifier, code, redirectUri, }: AccessTokenRequestOpts): Promise<AccessTokenRequest>;
    private assertPreAuthorizedGrantType;
    private assertAuthorizationGrantType;
    private isPinRequiredValue;
    private assertNumericPin;
    private assertNonEmptyPreAuthorizedCode;
    private assertNonEmptyCodeVerifier;
    private assertNonEmptyCode;
    private assertNonEmptyRedirectUri;
    private validate;
    private sendAuthCode;
    static determineTokenURL({ asOpts, issuerOpts, metadata, }: {
        asOpts?: AuthorizationServerOpts;
        issuerOpts?: IssuerOpts;
        metadata?: EndpointMetadata;
    }): string;
    private static creatTokenURLFromURL;
    private throwNotSupportedFlow;
}
