@tanstack/vue-router
Version:
Modern and scalable routing for Vue applications
40 lines (39 loc) • 3.61 kB
TypeScript
import { AnyRouter, DeepPartial, MakeOptionalPathParams, MakeOptionalSearchParams, MakeRouteMatchUnion, MaskOptions, MatchRouteOptions, RegisteredRouter, ResolveRoute, ToSubOptionsProps } from '@tanstack/router-core';
import * as Vue from 'vue';
declare module '@tanstack/router-core' {
interface RouteMatchExtensions {
meta?: Array<Vue.ComponentOptions['meta'] | undefined>;
links?: Array<Vue.ComponentOptions['link'] | undefined>;
scripts?: Array<Vue.ComponentOptions['script'] | undefined>;
headScripts?: Array<Vue.ComponentOptions['script'] | undefined>;
}
}
export declare const Matches: Vue.DefineComponent<{}, () => Vue.VNode<Vue.RendererNode, Vue.RendererElement, {
[key: string]: any;
}>, {}, {}, {}, Vue.ComponentOptionsMixin, Vue.ComponentOptionsMixin, {}, string, Vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, Vue.ComponentProvideOptions, true, {}, any>;
export type UseMatchRouteOptions<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = undefined, TMaskFrom extends string = TFrom, TMaskTo extends string = ''> = ToSubOptionsProps<TRouter, TFrom, TTo> & DeepPartial<MakeOptionalSearchParams<TRouter, TFrom, TTo>> & DeepPartial<MakeOptionalPathParams<TRouter, TFrom, TTo>> & MaskOptions<TRouter, TMaskFrom, TMaskTo> & MatchRouteOptions;
export declare function useMatchRoute<TRouter extends AnyRouter = RegisteredRouter>(): <const TFrom extends string = string, const TTo extends string | undefined = undefined, const TMaskFrom extends string = TFrom, const TMaskTo extends string = "">(opts: UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => Vue.Ref<false | ResolveRoute<TRouter, TFrom, TTo>["types"]["allParams"]>;
export type MakeMatchRouteOptions<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = undefined, TMaskFrom extends string = TFrom, TMaskTo extends string = ''> = UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & {
children?: ((params?: ResolveRoute<TRouter, TFrom, TTo>['types']['allParams']) => Vue.VNode) | Vue.VNode;
};
export interface MatchRouteComponentType {
<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = undefined>(props: MakeMatchRouteOptions<TRouter, TFrom, TTo>): Vue.VNode;
new (): {
$props: {
from?: string;
to?: string;
fuzzy?: boolean;
caseSensitive?: boolean;
includeSearch?: boolean;
pending?: boolean;
};
};
}
export declare const MatchRoute: MatchRouteComponentType;
export interface UseMatchesBaseOptions<TRouter extends AnyRouter, TSelected> {
select?: (matches: Array<MakeRouteMatchUnion<TRouter>>) => TSelected;
}
export type UseMatchesResult<TRouter extends AnyRouter, TSelected> = unknown extends TSelected ? Array<MakeRouteMatchUnion<TRouter>> : TSelected;
export declare function useMatches<TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseMatchesBaseOptions<TRouter, TSelected>): Vue.Ref<UseMatchesResult<TRouter, TSelected>>;
export declare function useParentMatches<TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseMatchesBaseOptions<TRouter, TSelected>): Vue.Ref<UseMatchesResult<TRouter, TSelected>>;
export declare function useChildMatches<TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseMatchesBaseOptions<TRouter, TSelected>): Vue.Ref<UseMatchesResult<TRouter, TSelected>>;