export interface AuthTokenConfig {
    accessTokenSecret: Uint8Array;
    refreshTokenSecret: string;
    accessTokenTtlSeconds: number;
    refreshTokenTtlSeconds: number;
}
export interface AccessTokenClaims {
    userId: string;
    sessionId: string;
    email: string;
    role: string;
    issuedAt: number;
    expiresAt: number;
}
export interface AccessTokenResult {
    token: string;
    expiresAt: Date;
    expiresIn: number;
}
export declare function getAuthTokenConfig(): AuthTokenConfig;
export declare function issueAccessToken(input: {
    userId: string;
    sessionId: string;
    email: string;
    role?: string | null;
    now?: Date;
}): Promise<AccessTokenResult>;
export declare function verifyAccessToken(token: unknown): Promise<AccessTokenClaims>;
export declare function generateRefreshToken(): string;
export declare function isRefreshToken(value: unknown): value is string;
export declare function hashRefreshToken(token: unknown): string;
//# sourceMappingURL=token.d.ts.map