import { JWK } from '@sphereon/oid4vc-common';
import { AccessTokenRequest, AccessTokenResponse, Alg, CNonceState, CredentialOfferSession, IStateManager, JWTSignerCallback, JWTVerifyCallback } from '@sphereon/oid4vci-common';
export interface ITokenEndpointOpts {
    tokenEndpointDisabled?: boolean;
    tokenPath?: string;
    interval?: number;
    cNonceExpiresIn?: number;
    tokenExpiresIn?: number;
    preAuthorizedCodeExpirationDuration?: number;
    accessTokenSignerCallback?: JWTSignerCallback;
    accessTokenVerificationCallback?: JWTVerifyCallback;
    accessTokenIssuer?: string;
    accessTokenProvider?: AccessTokenProvider;
}
export type AccessTokenProvider = 'internal' | 'oidc' | 'oauth2';
export declare const generateAccessToken: (opts: Required<Pick<ITokenEndpointOpts, 'accessTokenSignerCallback' | 'tokenExpiresIn' | 'accessTokenIssuer' | 'accessTokenProvider'>> & {
    additionalClaims?: Record<string, unknown>;
    preAuthorizedCode?: string;
    alg?: Alg;
    dPoPJwk?: JWK;
}) => Promise<string>;
export declare const isValidGrant: (assertedState: CredentialOfferSession, grantType: string) => boolean;
export declare const assertValidAccessTokenRequest: (request: AccessTokenRequest, opts: {
    credentialOfferSessions: IStateManager<CredentialOfferSession>;
    expirationDuration: number;
}) => Promise<{
    preAuthSession: CredentialOfferSession;
}>;
export declare const createAccessTokenResponse: (request: AccessTokenRequest, opts: {
    credentialOfferSessions: IStateManager<CredentialOfferSession>;
    cNonces: IStateManager<CNonceState>;
    cNonce?: string;
    cNonceExpiresIn?: number;
    tokenExpiresIn: number;
    accessTokenSignerCallback: JWTSignerCallback;
    accessTokenIssuer: string;
    accessTokenProvider?: AccessTokenProvider;
    interval?: number;
    dPoPJwk?: JWK;
}) => Promise<AccessTokenResponse>;
//# sourceMappingURL=index.d.ts.map