declare enum BillingPeriod {
    MONTHLY = "MONTHLY",
    ANNUALLY = "ANNUALLY"
}
interface OnboardingAdminStoreState {
    billingPeriod?: BillingPeriod;
    pricePerSeat?: number | null;
    seats?: number | null;
    orgOwnerEmail?: string;
}
interface OnboardingUserStoreState {
    name: string;
    slug: string;
    logo?: string | null;
    bio?: string | null;
    onboardingId: string | null;
    invitedMembers: {
        email: string;
        name?: string;
    }[];
    teams: {
        id: number;
        name: string;
        slug: string | null;
        isBeingMigrated: boolean;
    }[];
}
interface OnboardingStoreState extends OnboardingAdminStoreState, OnboardingUserStoreState {
    setBillingPeriod: (billingPeriod: BillingPeriod) => void;
    setPricePerSeat: (price: number | null) => void;
    setSeats: (seats: number | null) => void;
    setOrgOwnerEmail: (email: string) => void;
    setName: (name: string) => void;
    setSlug: (slug: string) => void;
    setLogo: (logo: string) => void;
    setBio: (bio: string) => void;
    addInvitedMember: (member: {
        email: string;
        name?: string;
    }) => void;
    removeInvitedMember: (email: string) => void;
    setOnboardingId: (onboardingId: string) => void;
    setTeams: (teams: {
        id: number;
        name: string;
        slug: string | null;
        isBeingMigrated: boolean;
    }[]) => void;
    reset: (state?: Partial<OnboardingStoreState>) => void;
}
export declare const useOnboardingStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<OnboardingStoreState>, "persist"> & {
    persist: {
        setOptions: (options: Partial<import("zustand/middleware").PersistOptions<OnboardingStoreState, OnboardingStoreState>>) => void;
        clearStorage: () => void;
        rehydrate: () => Promise<void> | void;
        hasHydrated: () => boolean;
        onHydrate: (fn: (state: OnboardingStoreState) => void) => () => void;
        onFinishHydration: (fn: (state: OnboardingStoreState) => void) => () => void;
        getOptions: () => Partial<import("zustand/middleware").PersistOptions<OnboardingStoreState, OnboardingStoreState>>;
    };
}>;
export declare const useOnboarding: (params?: {
    step?: "start" | "status" | null;
}) => {
    useOnboardingStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<OnboardingStoreState>, "persist"> & {
        persist: {
            setOptions: (options: Partial<import("zustand/middleware").PersistOptions<OnboardingStoreState, OnboardingStoreState>>) => void;
            clearStorage: () => void;
            rehydrate: () => Promise<void> | void;
            hasHydrated: () => boolean;
            onHydrate: (fn: (state: OnboardingStoreState) => void) => () => void;
            onFinishHydration: (fn: (state: OnboardingStoreState) => void) => () => void;
            getOptions: () => Partial<import("zustand/middleware").PersistOptions<OnboardingStoreState, OnboardingStoreState>>;
        };
    }>;
    isLoadingOrgOnboarding: boolean;
    dbOnboarding: {
        error: string | null;
        name: string;
        id: string;
        seats: number;
        teams: import('../../../../prisma-client').Prisma.JsonValue;
        logo: string | null;
        bio: string | null;
        slug: string;
        organizationId: number | null;
        stripeCustomerId: string | null;
        billingPeriod: import('../../../../prisma-client').$Enums.BillingPeriod;
        createdAt: Date;
        updatedAt: Date;
        isPlatform: boolean;
        createdById: number;
        orgOwnerEmail: string;
        pricePerSeat: number;
        isDomainConfigured: boolean;
        stripeSubscriptionId: string | null;
        stripeSubscriptionItemId: string | null;
        invitedMembers: import('../../../../prisma-client').Prisma.JsonValue;
        isComplete: boolean;
    } | null | undefined;
};
export {};
//# sourceMappingURL=onboardingStore.d.ts.map