import type { ExplorerEvent } from "./events.js";
import type { ExplorerConfig } from "./state.js";
export type ExplorerBuiltinCommand = "quit" | "filter" | "help" | "palette" | "cursorUp" | "cursorDown" | "top" | "bottom" | "pageUp" | "pageDown" | "focusNext" | "escape" | "confirm" | "toggleSelect" | "selectAll" | "clearSelection" | "detailScrollDown" | "detailScrollUp" | "extendSelectionUp" | "extendSelectionDown" | "reorderUp" | "reorderDown";
export type BindingTarget = {
    type: "builtin";
    id: ExplorerBuiltinCommand;
} | {
    type: "action";
    id: string;
};
type ExplorerKeypressEvent = Extract<ExplorerEvent, {
    type: "key";
}>["key"];
export interface ResolvedBindings {
    bindings: ReadonlyMap<string, BindingTarget>;
    keysByTarget: ReadonlyMap<string, readonly string[]>;
    resolve: (event: ExplorerKeypressEvent) => BindingTarget | undefined;
}
export type ExplorerBindingDefaults = Partial<Record<ExplorerBuiltinCommand, string[]>>;
export declare function resolveBindings<R>(config: ExplorerConfig<R>, defaults?: ExplorerBindingDefaults): ResolvedBindings;
export {};
