import type { UmbShortcut } from '../types.js';
import { UmbControllerBase, type UmbClassInterface } from '../../../../libs/class-api/index.js';
import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
import type { UmbPartialSome } from '../../utils/index.js';
type IncomingShortcutType = UmbPartialSome<UmbShortcut, 'unique' | 'weight' | 'modifier' | 'shift' | 'alt'>;
export declare class UmbShortcutController extends UmbControllerBase {
    #private;
    readonly all: import("rxjs").Observable<UmbShortcut[]>;
    constructor(host: UmbControllerHost);
    /**
     * Provide this validation context to a specific controller host.
     * This can be used to Host a validation context in a Workspace, but provide it on a certain scope, like a specific Workspace View.
     * @param {UmbClassInterface} controllerHost - The controller host to provide this validation context to.
     */
    provideAt(controllerHost: UmbClassInterface): void;
    unprovide(): void;
    inherit(): void;
    inheritFrom(parent: UmbShortcutController | undefined): void;
    initiateChange(): void;
    finishChange(): void;
    /**
     * Add a new hint
     * @param {IncomingShortcutType} shortcut - The hint to add
     * @returns {UmbShortcut['unique']} Unique value of the hint
     */
    addOne(shortcut: IncomingShortcutType): string | symbol;
    /**
     * Add multiple rules
     * @param {IncomingShortcutType[]} shortcuts - Array of hints to add
     */
    add(shortcuts: IncomingShortcutType[]): void;
    /**
     * Remove a hint
     * @param {UmbShortcut['unique']} unique Unique value of the hint to remove
     */
    removeOne(unique: UmbShortcut['unique']): void;
    /**
     * Remove multiple hints
     * @param {UmbShortcut['unique'][]} uniques Array of unique values to remove
     */
    remove(uniques: UmbShortcut['unique'][]): void;
    /**
     * Check if a hint exists
     * @param {UmbShortcut['unique']} unique Unique value of the hint to check
     * @returns {boolean} True if the hint exists, false otherwise
     */
    has(unique: UmbShortcut['unique']): boolean;
    /**
     * Get all hints
     * @returns {UmbShortcut[]} Array of hints
     */
    getAll(): UmbShortcut[];
    /**
     * Get all hints
     * @param key
     * @param modifier
     * @param shift
     * @param alt
     * @returns {UmbShortcut[]} Array of hints
     */
    findShortcut(key: string, modifier: boolean, shift?: boolean, alt?: boolean): UmbShortcut | undefined;
    /**
     * Clear all hints
     */
    clear(): void;
    activate(): void;
    deactivate(): void;
    destroy(): void;
}
export {};
