///
import { ActionKey } from './keys';
export type Resolved> = {
[ActionKey]: string;
} & U;
export type RoutingTargetEvent = chrome.events.Event<(...args: any[]) => any> | chrome.webRequest.WebRequestEvent<(...args: any[]) => any, string[]>;
export type ExtractCallback = T extends chrome.events.Event ? U : T extends chrome.webRequest.WebRequestEvent ? V : never;
export type HandlerOf any> = (...args: Parameters) => (Promise | undefined);
export type Resolver any, U = Record> = (...args: Parameters) => (Resolved | Promise>);
export declare const DefaultResolver: (...args: any[]) => Resolved;
export declare class Router> {
readonly resolver: Resolver, U>;
constructor(resolver?: Resolver, U>);
private notfound;
onNotFound(callback: HandlerOf>): void;
private error;
onError(callback: HandlerOf>): void;
private readonly routes;
on(action: string, callback: HandlerOf>): unknown;
private findHandler;
listener(): ExtractCallback;
private sendResponse;
}