import { User, AuthenticationResult, ValidateUserFn } from './api';
import { PublicKeyHolder } from './fetch-public-key';
import { S3 } from "@aws-sdk/client-s3";
import { AwsCredentialIdentityProvider } from "@aws-sdk/types";
export declare function createCookie(user: User, privateKey: string): string;
export declare function verifyUser(pandaCookie: string | undefined, publicKey: string, currentTime: Date, validateUser: ValidateUserFn): AuthenticationResult;
export declare class PanDomainAuthentication {
    cookieName: string;
    region: string;
    bucket: string;
    keyFile: string;
    validateUser: ValidateUserFn;
    publicKey: Promise<PublicKeyHolder>;
    keyCacheTimeInMillis: number;
    keyUpdateTimer?: NodeJS.Timeout;
    s3Client: S3;
    constructor(cookieName: string, region: string, bucket: string, keyFile: string, validateUser: ValidateUserFn, credentialsProvider?: AwsCredentialIdentityProvider);
    stop(): void;
    getPublicKey(): Promise<string>;
    verify(requestCookies: string | undefined): Promise<AuthenticationResult>;
}
