import Auth0, { MultifactorEnableOptions, PromptState } from "../../types";
import { FactorList } from "./authentication";
export interface PostLoginOptions {
    user?: Auth0.User;
    cache?: Record<string, string>;
    executedRules?: string[];
    now?: ConstructorParameters<typeof Date>[0];
    request?: Auth0.Request;
}
type SamlAttributeValue = string | number | boolean | null | Array<string | number | boolean>;
interface SamlResponseState {
    attributes: Record<string, SamlAttributeValue>;
    createUpnClaim: boolean;
    passthroughClaimsWithNoMapping: boolean;
    mapUnknownClaimsAsIs: boolean;
    mapIdentities: boolean;
    signResponse: boolean;
    lifetimeInSeconds: number;
    nameIdentifierFormat: string;
    nameIdentifierProbes: string[];
    authnContextClassRef: string;
    includeAttributeNameFormat: boolean;
    typedAttributes: boolean;
    audience: string;
    recipient: string;
    destination: string;
    cert?: string;
    encryptionCert?: string;
    encryptionPublicKey?: string;
    key?: string;
    signingCert?: string;
}
export interface PostLoginState {
    user: Auth0.User;
    cache: Auth0.API.Cache;
    access: {
        denied: false;
    } | {
        denied: {
            reason: string;
        };
    };
    accessToken: {
        claims: Record<string, unknown>;
        scopes: string[];
    };
    authentication: {
        primaryUserId: string;
        challenge: FactorList | false;
        enrollment: FactorList | false;
        newlyRecordedMethods: string[];
    };
    idToken: {
        claims: Record<string, unknown>;
    };
    prompt: {
        rendered: PromptState | null;
    };
    multifactor: {
        enabled: false | {
            provider: string;
            options?: MultifactorEnableOptions;
        };
    };
    samlResponse: SamlResponseState;
    validation: {
        error: {
            code: string;
            message: string;
        } | null;
    };
    redirect: {
        url: URL;
        queryParams: Record<string, string>;
    } | null;
}
export declare function postLogin({ user, request, cache, executedRules: optionallyExecutedRules, now: nowValue, }?: PostLoginOptions): {
    implementation: Auth0.PostLogin;
    state: PostLoginState;
};
export {};
//# sourceMappingURL=post-login.d.ts.map