import { CreateInertiaAppOptions, CreateInertiaAppOptionsForCSR, CreateInertiaAppOptionsForSSR, InertiaAppSSRResponse, Page, PageProps, SharedPageProps } from '@inertiajs/core'; import { DefineComponent, Plugin, App as VueApp } from 'vue'; import { InertiaApp, InertiaAppProps } from './app'; import { VueInertiaAppConfig } from './types'; type ComponentResolver = (name: string, page?: Page) => DefineComponent | Promise | { default: DefineComponent; }; type SetupOptions = { el: ElementType; App: InertiaApp; props: InertiaAppProps; plugin: Plugin; }; type VueWithApp = (app: VueApp, options: { ssr: boolean; }) => void; type InertiaAppOptionsForCSR = CreateInertiaAppOptionsForCSR, void, VueInertiaAppConfig> & { withApp?: never; }; type InertiaAppOptionsForSSR = CreateInertiaAppOptionsForSSR, VueApp, VueInertiaAppConfig> & { render: (app: VueApp) => Promise; withApp?: never; }; type InertiaAppOptionsAuto = Omit, VueApp | void, VueInertiaAppConfig>, 'setup'> & { page?: Page; render?: undefined; } & ({ setup?: undefined; withApp?: VueWithApp; } | { setup: (options: SetupOptions) => VueApp | void; withApp?: never; }); type RenderToString = (app: VueApp) => Promise; type RenderFunction = (page: Page, renderToString: RenderToString) => Promise; export default function createInertiaApp(options: InertiaAppOptionsForCSR): Promise; export default function createInertiaApp(options: InertiaAppOptionsForSSR): Promise; export default function createInertiaApp(options?: InertiaAppOptionsAuto): Promise>; export {};