import type { BindingState, KeymapEvent, KeySequencePart, KeyMatch, PendingSequenceCapture, PendingSequencePatternCapture, RegisteredLayer, ResolvedSequencePattern, SequenceNode, SequencePatternMatch } from "../types.js"; export interface SequenceActiveOption { part: KeySequencePart; binding: BindingState; index: number; exact: boolean; continues: boolean; } export declare function createSequenceNode(parent: SequenceNode | null, stroke: KeySequencePart["stroke"] | null, match: KeySequencePart["match"] | null, pattern?: ResolvedSequencePattern): SequenceNode; export declare function buildSequenceTree(bindings: readonly BindingState[], patterns: ReadonlyMap>): SequenceNode; export declare function getCaptureNode(root: SequenceNode, capture: import("../types.js").PendingSequenceCapture): SequenceNode | undefined; export declare function getNodeSequence(node: SequenceNode): KeySequencePart[]; export declare function getNodePresentation(node: SequenceNode): { display: string; tokenName?: string; }; export declare function firstNodeForMatch(root: SequenceNode, match: KeyMatch): SequenceNode | undefined; export declare function childNodes(node: SequenceNode): SequenceNode[]; export declare function activeOptionsForBindings(bindings: readonly BindingState[]): SequenceActiveOption[]; export declare function activeOptionsForCaptures(captures: readonly PendingSequenceCapture[], patterns: ReadonlyMap>): SequenceActiveOption[]; export declare function capturePriority(capture: PendingSequenceCapture, matchKeys: readonly KeyMatch[]): number; export declare function advanceSequenceBinding(layer: RegisteredLayer, binding: BindingState, index: number, parts: readonly KeySequencePart[], patterns: readonly PendingSequencePatternCapture[] | undefined, matchKeys: readonly KeyMatch[], event: TEvent, matchPattern: (patternName: string, event: TEvent) => SequencePatternMatch | undefined, createPatternPart: (event: TEvent, patternName: string, match: SequencePatternMatch) => KeySequencePart): PendingSequenceCapture | undefined; export declare function advanceSequenceCapture(capture: PendingSequenceCapture, matchKeys: readonly KeyMatch[], event: TEvent, patterns: ReadonlyMap>, matchPattern: (patternName: string, event: TEvent) => SequencePatternMatch | undefined, createPatternPart: (event: TEvent, patternName: string, match: SequencePatternMatch) => KeySequencePart): PendingSequenceCapture | undefined; export declare function collectRootSequenceCaptures(layer: RegisteredLayer, matchKeys: readonly KeyMatch[], event: TEvent, matchPattern: (patternName: string, event: TEvent) => SequencePatternMatch | undefined, createPatternPart: (event: TEvent, patternName: string, match: SequencePatternMatch) => KeySequencePart): PendingSequenceCapture[];