import { AxiosRequestConfig, AxiosResponse } from 'axios'; type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS'; interface PagesResponseBody { } type MiddlewareOf = Exclude] extends never ? never : PagesResponseBody[MatchedRoutes] extends { ALL: infer R; } ? R : PagesResponseBody[MatchedRoutes][Method], Error | void>; type TypedResponse = Default extends string | boolean | number | null | void | object ? Default : Route extends string ? MiddlewareOf extends never ? any : MiddlewareOf : any; type MatchResult = { [k in Key]: { key: k; exact: Exact; score: Score; }; }[Key]; type Subtract = Minuend extends [ ...Subtrahend, ...infer Remainder ] ? Remainder : never; type TupleIfDiff = First extends `${Second}${infer Diff}` ? (Diff extends '' ? [] : Tuple) : []; type MaxTuple = { current: T; result: MaxTuple; }[[N['length']] extends [Partial['length']] ? 'current' : 'result']; type CalcMatchScore = `${Key}/` extends `${infer KeySeg}/${infer KeyRest}` ? KeySeg extends FirstKeySegMatcher ? Subtract<[...Score, ...TupleIfDiff], TupleIfDiff> : `${Route}/` extends `${infer RouteSeg}/${infer RouteRest}` ? RouteSeg extends KeySeg ? CalcMatchScore : KeySeg extends `:${string}` ? RouteSeg extends '' ? never : CalcMatchScore : KeySeg extends RouteSeg ? CalcMatchScore : never : never : never; type _MatchedRoutes = MatchResult> = MatchedResultUnion['key'] extends infer MatchedKeys ? MatchedKeys extends string ? Route extends MatchedKeys ? MatchResult : MatchedKeys extends `${infer Root}/**${string}` ? MatchResult> : MatchResult> : never : never; type MatchedRoutes = MatchResult, Matches extends MatchResult = _MatchedRoutes> = Extract extends never ? Extract, { score: MaxTuple; }>['key'] : Extract['key']; declare function useFunctions(config?: AxiosRequestConfig): { get(url: Route, config?: AxiosRequestConfig): Promise>; post(url: Route, data?: D, config?: AxiosRequestConfig): Promise>; put(url: Route, data?: D, config?: AxiosRequestConfig): Promise>; patch(url: Route, data?: D, config?: AxiosRequestConfig): Promise>; delete(url: Route, config?: AxiosRequestConfig): Promise>; head(url: Route, config?: AxiosRequestConfig): Promise>; options(url: Route, config?: AxiosRequestConfig): Promise>; raw: { get(url: Route, config?: AxiosRequestConfig): Promise, D>>; post(url: Route, data?: D, config?: AxiosRequestConfig): Promise, D>>; put(url: Route, data?: D, config?: AxiosRequestConfig): Promise, D>>; patch(url: Route, data?: D, config?: AxiosRequestConfig): Promise, D>>; delete(url: Route, config?: AxiosRequestConfig): Promise, D>>; head(url: Route, config?: AxiosRequestConfig): Promise, D>>; options(url: Route, config?: AxiosRequestConfig): Promise, D>>; }; }; export { type PagesResponseBody, type TypedResponse, useFunctions };