import { AkteFiles, type FilesBulkDataFn, type FilesDataFn, type FilesDefinition } from "./AkteFiles"; import type { Empty } from "./types"; /** * Creates an Akte files instance. * * @example * const posts = defineAkteFiles().from({ * path: "/posts/:slug", * bulkData() { * return { * "/posts/foo": {}, * "/posts/bar": {}, * "/posts/baz": {}, * }; * }, * render(context) { * return "..."; * }, * }); * * @typeParam TGlobalData - Global data the Akte files expects. * @typeParam TParams - Parameters the Akte files expects. * @typeParam TData - Data the Akte files expects (inferred by default) * @returns A factory to create the Akte files from. */ export declare const defineAkteFiles: () => { /** * Creates an Akte files instance from a definition. * * @param definition - The definition to create the instance from. * @returns The created Akte files. */ from: <_TGlobalData extends TGlobalData, _TParams extends TParams extends Empty ? _TDataFn extends FilesDataFn<_TGlobalData, string[], unknown> ? Exclude[0]["params"], number | Symbol>[] : string[] : TParams, _TData extends TData extends Empty ? _TDataFn extends FilesDataFn<_TGlobalData, string[], unknown> ? Awaited> : _TBulkDataFn extends FilesBulkDataFn<_TGlobalData, unknown> ? Awaited>[keyof Awaited>] : undefined : TData, _TDataFn extends FilesDataFn<_TGlobalData, string[], unknown> | undefined, _TBulkDataFn extends _TDataFn extends FilesDataFn<_TGlobalData, string[], unknown> ? FilesBulkDataFn<_TGlobalData, Awaited>> | undefined : FilesBulkDataFn<_TGlobalData, unknown> | undefined>(definition: FilesDefinition<_TGlobalData, _TParams, _TData>) => AkteFiles<_TGlobalData, _TParams, _TData>; };