import { AdminContextProvider } from '../../admin-context/providers/admin-context.provider.js';
import type { AdminContext } from '../../admin-context/types.js';
import { TenantAwareDBClient } from '../../app-providers/tenant-db-client.js';
import { Auth0ManagementProvider } from '../../auth/providers/auth0-management.provider.js';
import { BusinessUsersProvider } from '../../auth/providers/business-users.provider.js';
import { InvitationsProvider } from '../../auth/providers/invitations.provider.js';
import { SuperAdminProvider } from '../../auth/providers/super-admin.provider.js';
import { AdminBusinessesProvider } from '../../financial-entities/providers/admin-businesses.provider.js';
import { EntityEnsureProvider } from '../../financial-entities/providers/entity-ensure.provider.js';
import type { IGetBootstrapBusinessResult } from '../types.js';
export interface BootstrapClientInput {
    businessName: string;
    countryCode: string;
    locality?: string | null;
    dateEstablished?: string | null;
    initialAccounterYear?: number | null;
    ownerEmail: string;
    ownerRole: string;
}
export interface BootstrapClientResult {
    adminEntityId: string;
    invitationToken: string;
    business: IGetBootstrapBusinessResult;
    adminContext: AdminContext;
}
export declare class AdminOnboardingProvider {
    private db;
    private entityEnsure;
    private adminContextProvider;
    private businessUsersProvider;
    private adminBusinessesProvider;
    private auth0Management;
    private invitationsProvider;
    private superAdminProvider;
    constructor(db: TenantAwareDBClient, entityEnsure: EntityEnsureProvider, adminContextProvider: AdminContextProvider, businessUsersProvider: BusinessUsersProvider, adminBusinessesProvider: AdminBusinessesProvider, auth0Management: Auth0ManagementProvider, invitationsProvider: InvitationsProvider, superAdminProvider: SuperAdminProvider);
    bootstrapNewClient(input: BootstrapClientInput): Promise<BootstrapClientResult>;
}
