import { AxiosResponse, CancelTokenSource } from 'axios'; export declare type Errors = Record; export declare type ErrorBag = Record; export declare type FormDataConvertible = Array | Blob | FormDataEntryValue | Date | boolean | number | null; export declare enum Method { GET = "get", POST = "post", PUT = "put", PATCH = "patch", DELETE = "delete" } export declare type RequestPayload = Record | FormData; export interface PageProps { [key: string]: unknown; } export interface Page { component: string; props: PageProps & SharedProps & { errors: Errors & ErrorBag; }; url: string; version: string | null; scrollRegions: Array<{ top: number; left: number; }>; rememberedState: Record; resolvedErrors: Errors; } export declare type PageResolver = (name: string) => Component; export declare type PageHandler = ({ component, page, preserveState, }: { component: Component; page: Page; preserveState: PreserveStateOption; }) => Promise; export declare type PreserveStateOption = boolean | string | ((page: Page) => boolean); export declare type Progress = ProgressEvent & { percentage: number; }; export declare type LocationVisit = { preserveScroll: boolean; }; export declare type Visit = { method: Method; data: RequestPayload; replace: boolean; preserveScroll: PreserveStateOption; preserveState: PreserveStateOption; only: Array; headers: Record; errorBag: string | null; forceFormData: boolean; queryStringArrayFormat: 'indices' | 'brackets'; }; export declare type GlobalEventsMap = { before: { parameters: [PendingVisit]; details: { visit: PendingVisit; }; result: boolean | void; }; start: { parameters: [PendingVisit]; details: { visit: PendingVisit; }; result: void; }; progress: { parameters: [Progress | undefined]; details: { progress: Progress | undefined; }; result: void; }; finish: { parameters: [ActiveVisit]; details: { visit: ActiveVisit; }; result: void; }; cancel: { parameters: []; details: {}; result: void; }; navigate: { parameters: [Page]; details: { page: Page; }; result: void; }; success: { parameters: [Page]; details: { page: Page; }; result: void; }; error: { parameters: [Errors]; details: { errors: Errors; }; result: void; }; invalid: { parameters: [AxiosResponse]; details: { response: AxiosResponse; }; result: boolean | void; }; exception: { parameters: [Error]; details: { exception: Error; }; result: boolean | void; }; }; export declare type GlobalEventNames = keyof GlobalEventsMap; export declare type GlobalEvent = CustomEvent>; export declare type GlobalEventParameters = GlobalEventsMap[TEventName]['parameters']; export declare type GlobalEventResult = GlobalEventsMap[TEventName]['result']; export declare type GlobalEventDetails = GlobalEventsMap[TEventName]['details']; export declare type GlobalEventTrigger = (...params: GlobalEventParameters) => GlobalEventResult; export declare type GlobalEventCallback = (...params: GlobalEventParameters) => GlobalEventResult; export declare type VisitOptions = Partial; onStart: GlobalEventCallback<'start'>; onProgress: GlobalEventCallback<'progress'>; onFinish: GlobalEventCallback<'finish'>; onCancel: GlobalEventCallback<'cancel'>; onSuccess: GlobalEventCallback<'success'>; onError: GlobalEventCallback<'error'>; }>; export declare type PendingVisit = Visit & { url: URL; completed: boolean; cancelled: boolean; interrupted: boolean; }; export declare type ActiveVisit = PendingVisit & Required & { cancelToken: CancelTokenSource; }; export declare type VisitId = unknown; export declare type Component = unknown; export declare type InertiaAppResponse = Promise<{ head: string[]; body: string; } | void>;