import { createHeadManager, type LayoutCallbackReturn, Page, PageHandler, PageProps, router, SharedPageProps } from '@inertiajs/core'; import { Component, DefineComponent, VNode } from 'vue'; import useForm from './useForm'; export type VuePageHandlerArgs = Parameters>[0]; export type VueInertiaAppConfig = {}; export type LayoutCallback = (props: SharedPageProps) => LayoutCallbackReturn; export type LayoutRenderFunction = (h: (component: Component, children: Component[]) => VNode, page: Component) => VNode; declare module '@inertiajs/core' { interface Router { form: typeof useForm; } } declare module 'vue' { interface ComponentCustomProperties { $inertia: typeof router; $page: Page; $headManager: ReturnType; } interface ComponentCustomOptions { layout?: LayoutCallbackReturn> | Component[] | ((props: any) => any) | LayoutRenderFunction; remember?: string | string[] | { data: string | string[]; key?: string | (() => string); }; } }