import { Signature } from './helpers/saml-types'; export declare namespace SAMLLoginResponse { interface Root { $: { Destination: string; ID: string; InResponseTo: string; IssueInstant: string; Version: string; }; Issuer: { _: string; }[]; Status: { StatusCode: { $: { Value: string; }; }[]; }[]; Assertion: Assertion[]; } interface Assertion { $: { ID: string; IssueInstant: string; Version: string; xmlns: string; }; Issuer: { _: string; }[]; Signature: Signature[]; Subject: Subject[]; Conditions: Conditions[]; AuthnStatement: { $: { SessionIndex: string; }; }[]; AttributeStatement: { Attribute: Attribute[]; }[]; } interface Attribute { $: { Name: string; }; AttributeValue: [{ _: string; }]; } interface Conditions { $: { NotBefore: string; NotOnOrAfter: string; }; AudienceRestriction: { Audience: { _: string; }[]; }[]; } interface Subject { NameID: { _: string; }[]; SubjectConfirmation: { $: { Method: string; }; SubjectConfirmationData: { $: { InResponseTo: string; NotOnOrAfter: string; Recipient: string; }; }; }[]; } } export interface LoginResponse { id: string; inResponseTo: string; issuer: string; statusCodes: string[]; assertions: { subject: string; issuer: string; sessionIndex: string; notBefore: Date; notOnOrAfter: Date; audience: string; attributes: { [key: string]: string; }; }[]; } interface CheckOptions { issuer: string; audience: string; strictTimeCheck: boolean; } export declare function extract(response: string, attributeMapping: T, options: CheckOptions): Promise; export {};