import { ProductList, CartModule, ProductData, AccountModule, AccountListModule, DateModule, GuestListModule, OrderModule, PaymentModule, ResourceListModule, StepModule, SummaryModule, SalesSummaryModule, ScheduleModule, ScanOrderLoggerModule } from '../../modules';
export interface BookingByStepState {
    cart: CartModule;
    summary: SummaryModule;
    step: StepModule;
    products: ProductList;
    guests: GuestListModule;
    date: DateModule;
    resources?: ResourceListModule;
    account: AccountModule;
    accountList: AccountListModule;
    order: OrderModule;
    payment: PaymentModule;
    currentProduct?: ProductData;
    currentProductMeta?: Record<string, any>;
    schedule: ScheduleModule;
    salesSummary?: SalesSummaryModule;
    scanOrderLogger?: ScanOrderLoggerModule;
}
export declare function createModule<T extends keyof BookingByStepState>(moduleName: T, solutionName: string, name?: string, version?: string): BookingByStepState[T];
export declare enum BookingByStepHooks {
    onInited = "bookingByStep:onInited",
    onDestroy = "bookingByStep:onDestroy",
    onProductsLoaded = "bookingByStep:onProductsLoaded",
    onGuestsLoaded = "bookingByStep:onGuestsLoaded",
    onDateLoaded = "bookingByStep:onDateLoaded",
    onResourcesLoaded = "bookingByStep:onResourcesLoaded",
    onAccountLoaded = "bookingByStep:onAccountLoaded"
}
