import type { IEventDetail } from '@breadstone/mosaik-elements';
/**
 * Represents the event detail for breakpoint matched events.
 *
 * @public
 */
export interface IBreakpointMatchedEventDetail extends IEventDetail {
    /**
     * The query that was matched.
     */
    readonly query: string | ReadonlyArray<string>;
    /**
     * Whether the query matches.
     */
    readonly matches: boolean;
}
/**
 * Event fired when a breakpoint matches.
 *
 * @public
 */
export type BreakpointMatchedEvent = CustomEvent<IBreakpointMatchedEventDetail>;
/**
 * Represents the event detail for router navigated events.
 *
 * @public
 */
export interface IRouterNavigatedEventDetail extends IEventDetail {
    /**
     * The route path.
     */
    readonly path?: string;
    /**
     * The route configuration.
     */
    readonly route?: unknown;
}
/**
 * Event fired when router navigation completes.
 *
 * @public
 */
export type RouterNavigatedEvent = CustomEvent<IRouterNavigatedEventDetail>;
/**
 * Represents the event detail for routes connected events.
 *
 * @public
 */
export interface IRoutesConnectedEventDetail extends IEventDetail {
    /**
     * The connected routes.
     */
    readonly routes: unknown;
    /**
     * Disconnect callback.
     */
    disconnect?(): void;
}
/**
 * Event fired when routes are connected.
 *
 * @public
 */
export type RoutesConnectedEvent = CustomEvent<IRoutesConnectedEventDetail>;
declare global {
    interface HTMLElementEventMap {
        breakpointMatched: BreakpointMatchedEvent;
        routerNavigated: RouterNavigatedEvent;
        routesConnected: RoutesConnectedEvent;
        navigated: RouterNavigatedEvent;
    }
}
//# sourceMappingURL=NavigationEvents.d.ts.map