import { Profile, AuthenticationOptions, DelegationOptions, ValidationOptions, AuthenticationResponseMetadata, SamlRequestMetadata } from "./types";
declare class SamlLogin {
    private requestIdExpirationPeriodMs;
    generateDelegationUrl(options: DelegationOptions): Promise<string>;
    generateAuthenticationUrl(options: AuthenticationOptions): Promise<string>;
    validateSignature(fullXml: string, currentNode: Element, certs: string[]): boolean;
    parseSamlRequestMetadata(samlEncodedBody: string): Promise<SamlRequestMetadata>;
    getSamlAssertionMetadata(samlEncodedBody: string): Promise<AuthenticationResponseMetadata>;
    validatePostResponse(options: ValidationOptions, samlEncodedBody: string): Promise<{
        profile?: Profile | null;
        loggedOut?: boolean;
    }>;
    private processValidlySignedAssertion;
    private checkTimestampsValidityError;
    private checkAudienceValidityError;
    /**
     * Process max age assertion and use it if it is more restrictive than the NotOnOrAfter age
     * assertion received in the SAMLResponse.
     *
     * @param maxAssertionAgeMs Max time after IssueInstant that we will accept assertion, in Ms.
     * @param notOnOrAfter Expiration provided in response.
     * @param issueInstant Time when response was issued.
     * @returns {*} The expiration time to be used, in Ms.
     */
    private processMaxAgeAssertionTime;
}
export default SamlLogin;
