import type { CoreProviderProps } from '../core/context/CoreProvider';
import type { ExperimentsProps } from '../core/context/ExperimentContext/types';
import type { SettingsProps } from '../core/context/SettingsContext/types';
import type { UserEventCallback } from '../core/user-events';
import { BusinessDetailsDropin } from './Business/tasks/BusinessDetailsDropin/BusinessDetailsDropin';
import { CompanyDropin } from './Business/tasks/CompanyDropin/CompanyDropin';
import { DropinComposer } from './Dropins/DropinComposer/DropinComposer';
import { IndividualDropin } from './Individual/tasks/IndividualDropin/IndividualDropin';
import { PciDropin } from './Contract/tasks/PciDropin/PciDropin';
import { SolePropDropin } from './SoleProprietorship/tasks/SolePropDropin/SolePropDropin';
import { TrustDropin } from './Trust/tasks/TrustDropin/TrustDropin';
import { AcceptTermsOfServiceComponent } from './EmbeddedDropins/AcceptTermsOfServiceComponent/AcceptTermsOfServiceComponent';
import { CreateIndividualComponent } from './EmbeddedDropins/CreateIndividualComponent/CreateIndividualComponent';
import { CreateTransferInstrumentComponent } from './EmbeddedDropins/CreateTransferInstrumentComponent/CreateTransferInstrumentComponent';
import { ManageIndividualComponent } from './EmbeddedDropins/ManageIndividualComponent/ManageIndividualComponent';
import { ManagePCIComponent } from './EmbeddedDropins/ManagePCIComponent/ManagePCIComponent';
import { ManageTermsOfServiceComponent } from './EmbeddedDropins/ManageTermsOfServiceComponent/ManageTermsOfServiceComponent';
import { ManageTransferInstrumentComponent } from './EmbeddedDropins/ManageTransferInstrumentComponent/ManageTransferInstrumentComponent';
import { OnboardingDropinComponent } from './EmbeddedDropins/OnboardingDropinComponent/OnboardingDropinComponent';
import { SignPCIComponent } from './EmbeddedDropins/SignPCIComponent/SignPCIComponent';
import { UpdateLegalEntityForHighExposure } from './EmbeddedDropins/UpdateLegalEntityForHighExposure/UpdateLegalEntityForHighExposure';
import { ViewVerificationStatusComponent } from './EmbeddedDropins/ViewVerificationStatus/ViewVerificationStatusComponent';
import type { EventEmitter } from '../core/EventEmitter';
import { SourceOfFundsDropin } from './Dropins/SourceOfFundsDropin/SourceOfFundsDropin';
import { PayoutDetailsDropin } from './BankAccount/tasks/PayoutDetailsDropin/PayoutDetailsDropin';
/**
 * Maps each component with a Component element.
 */
export declare const componentsMap: {
    readonly individualDropin: typeof IndividualDropin;
    readonly businessDetailsDropin: typeof BusinessDetailsDropin;
    readonly companyDropin: typeof CompanyDropin;
    readonly taskList: typeof DropinComposer;
    readonly payoutAccount: typeof PayoutDetailsDropin;
    readonly trustDropin: typeof TrustDropin;
    readonly soleProprietorDropin: typeof SolePropDropin;
    readonly pci: typeof PciDropin;
    readonly createTransferInstrumentComponent: typeof CreateTransferInstrumentComponent;
    readonly createIndividualComponent: typeof CreateIndividualComponent;
    readonly manageTransferInstrumentComponent: typeof ManageTransferInstrumentComponent;
    readonly onboardingDropinComponent: typeof OnboardingDropinComponent;
    readonly manageIndividualComponent: typeof ManageIndividualComponent;
    readonly acceptTermsOfServiceComponent: typeof AcceptTermsOfServiceComponent;
    readonly manageTermsOfServiceComponent: typeof ManageTermsOfServiceComponent;
    readonly managePCIComponent: typeof ManagePCIComponent;
    readonly signPCIComponent: typeof SignPCIComponent;
    readonly viewVerificationStatusComponent: typeof ViewVerificationStatusComponent;
    readonly updateLegalEntityForHighExposureComponent: typeof UpdateLegalEntityForHighExposure;
    readonly sourceOfFundsDropin: typeof SourceOfFundsDropin;
};
export type ComponentMap = typeof componentsMap;
export type ComponentProps<Name extends keyof ComponentMap> = Parameters<ComponentMap[Name]>[0];
export type ComponentPropsWithoutInternalProps<Name extends keyof ComponentMap> = Omit<ComponentProps<Name>, keyof CommonInternalProps>;
/** List componentProps (passed from UIElement to Component) which are internal
 * and  not exposed to consumers,
 */
export interface CommonInternalProps {
    /** Used when component itself needs to handle cleanup.
     *  Eg. When Close button is clicked in modal view
     */
    onUnMount(): void;
    /** Used to update locale in components */
    eventEmitter: EventEmitter;
}
export type ComponentOptions<Name extends keyof ComponentMap> = ComponentPropsWithoutInternalProps<Name> & Partial<CoreProviderProps> & Partial<SettingsProps> & Partial<ExperimentsProps> & {
    onUserEvent?: UserEventCallback;
};
