import type { AccountHolderOption } from '../../core/types/AccountHolder.types';
import type { Translatable } from '../../../types';
import type { ExistingLegalEntity } from '../../core/models/api/legal-entity';
import type { UniqueEntityAssociation } from '../../components/Shared/EntityAssociation/types';
declare enum SingpassMyInfoLoginActionType {
    LOADING = "LOADING",
    SUCCESS = "SUCCESS",
    FAILURE = "FAILURE",
    RESET = "RESET"
}
interface SingpassMyInfoLoginAction {
    type: SingpassMyInfoLoginActionType;
    isLoading: boolean;
    isSuccess: boolean;
    errorMessage?: Translatable;
}
export type SingpassMyInfoLoginState = Omit<SingpassMyInfoLoginAction, 'type'>;
interface UseSingpassMyInfoLoginProps {
    legalEntity?: ExistingLegalEntity;
    accountHolder: AccountHolderOption | undefined;
}
export declare const getTrustedEntityAssociations: (legalEntityTrustedFields: string[]) => Partial<UniqueEntityAssociation>[];
export declare const useSingpassMyInfoLogin: ({ legalEntity, accountHolder, }: UseSingpassMyInfoLoginProps) => {
    isEligibleForSingpass: boolean;
    state: SingpassMyInfoLoginState;
    handleInitiateSingpassMyInfoLogin: () => Promise<string>;
    handleSingpassMyInfoLoginSuccess: () => void;
    handleSingpassMyInfoLoginFailure: (errorMessage: Translatable) => void;
    handleSingpassMyInfoLoginReset: () => void;
    trustedFields: Record<string, string[]>;
    trustedEntityAssociations: Partial<UniqueEntityAssociation>[];
};
export {};
