import { LocationQueryRaw, RouteLocationAsRelativeGeneric, RouteLocationNormalizedLoaded, RouteParamsGeneric } from "vue-router"; import { Ref } from "vue"; interface WidgetAppointmentPage { id: string; routeName: string; state: (route: RouteDefinition) => WidgetAppointmentPageState; transitions?: WidgetAppointmentPage[]; } export interface PageEventProps { on?: PageStateEvents; } export interface PageStateEmits { (e: 'onLoaded'): void; (e: 'onNext', args?: Record): void; (e: 'onSkip', args?: Record): void; (e: 'onPrevious', args?: Record): void; (e: 'onCancel', args?: Record): void; (e: 'onAccept', args?: Record): void; (e: 'onDecline', args?: Record): void; (e: 'onReschedule', args?: Record): void; (e: 'onError', args?: Record): void; (e: 'onContactDetails', contactId: string): void; (e: 'onStaffChangeRequest', staffId: string, mainStaff: boolean): void; (e: 'onNoteUpdated'): void; (e: 'onStatusUpdated', newStatus?: string): void; (e: 'onAddAttendee'): void; (e: 'onDeleteAttendee', attendeeId: string): void; } export declare type PageStatEventPrototype = (args?: Record, route?: RouteLocationNormalizedLoaded) => (RouteDefinition | undefined) | Promise; export declare type RouteDefinition = RouteLocationAsRelativeGeneric | { name: string | symbol | undefined; params?: RouteParamsGeneric; query?: LocationQueryRaw; }; export interface PageStateEvents { onLoaded?: PageStatEventPrototype; onNext?: PageStatEventPrototype; onSkip?: PageStatEventPrototype; onPrevious?: PageStatEventPrototype; onCancel?: PageStatEventPrototype; onAccept?: PageStatEventPrototype; onDecline?: PageStatEventPrototype; onReschedule?: PageStatEventPrototype; onError?: PageStatEventPrototype; } export declare abstract class WidgetAppointmentPageState { pageRef?: any; readonly id: string; readonly route?: RouteDefinition; readonly props: any; readonly pageIndex: number; purge?: Function; on?: PageStateEvents; previousAutoSelectPage: string[]; isLoading: Ref; footerButton: boolean; skipped: Ref; protected constructor(page: WidgetAppointmentPage, route: RouteDefinition | undefined, pageIndex: number, options?: { props?: any; on?: PageStateEvents; purge?: () => void; }); } export type WidgetAppointmentState = WidgetAppointmentNoneState | WidgetAppointmentAvailabilityState | WidgetAppointmentServicesState | WidgetErrorState; export declare class WidgetAppointmentNoneState extends WidgetAppointmentPageState { constructor(pageIndex?: number); onError(args?: Record, route?: RouteLocationNormalizedLoaded): RouteDefinition | undefined; } export declare class WidgetAppointmentNoSlot extends WidgetAppointmentPageState { constructor(route: RouteDefinition, pageIndex?: number); } export declare class WidgetAppointmentHomeState extends WidgetAppointmentPageState { constructor(route: RouteDefinition, pageIndex?: number); } export declare class WidgetAppointmentConfirmState extends WidgetAppointmentPageState { constructor(route: RouteDefinition, pageIndex?: number); onConfirm(args?: Record, route?: RouteLocationNormalizedLoaded): Promise; onCancel(args?: Record, route?: RouteLocationNormalizedLoaded): RouteDefinition | undefined; } export declare class WidgetAppointmentAvailabilityState extends WidgetAppointmentPageState { constructor(route: RouteDefinition, pageIndex?: number, page?: WidgetAppointmentPage); onSlotSelect(args?: Record, route?: RouteLocationNormalizedLoaded): RouteDefinition | undefined; } export declare class WidgetAppointmentCompaniesState extends WidgetAppointmentPageState { constructor(route: RouteDefinition, pageIndex?: number, page?: WidgetAppointmentPage); onCompanySelected(args?: Record, route?: RouteLocationNormalizedLoaded, skipped?: Ref): RouteDefinition | undefined; onError(args?: Record, route?: RouteLocationNormalizedLoaded): RouteDefinition | undefined; } export declare class WidgetAppointmentServicesState extends WidgetAppointmentPageState { constructor(route: RouteDefinition, pageIndex?: number, page?: WidgetAppointmentPage); onServiceSelected(args?: Record, route?: RouteLocationNormalizedLoaded, skipped?: Ref): RouteDefinition | undefined; onError(args?: Record, route?: RouteLocationNormalizedLoaded): RouteDefinition | undefined; } export declare class WidgetAppointmentLocationState extends WidgetAppointmentPageState { constructor(route: RouteDefinition, pageIndex?: number, page?: WidgetAppointmentPage); onLocationSelected(args?: Record, route?: RouteLocationNormalizedLoaded, skipped?: Ref): RouteDefinition | undefined; } export declare class WidgetAppointmentCompanyAvailabilityState extends WidgetAppointmentAvailabilityState { constructor(route: RouteDefinition, pageIndex?: number); } export declare class WidgetAppointmentCompanyServicesState extends WidgetAppointmentServicesState { constructor(route: RouteDefinition, pageIndex?: number); } export declare class WidgetAppointmentCompanyLocationState extends WidgetAppointmentLocationState { constructor(route: RouteDefinition, pageIndex?: number); } export declare class WidgetErrorState extends WidgetAppointmentPageState { constructor(route: RouteDefinition, pageIndex?: number); } export declare const WIDGET_APPOINTMENT_PAGE: Record; export declare function getStateFromCurrentRoute(route: RouteDefinition): WidgetAppointmentPageState; export declare function routeToDefinition(route: any): RouteDefinition; export {}; //# sourceMappingURL=WidgetAppointmentState.d.ts.map