UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

21 lines 1.38 kB
import { IAction } from "../_types/IAction"; import { IActionBinding } from "../_types/IActionBinding"; import { IBindingCreatorConfig, IBindingCreatorConfigOrData } from "../_types/IBindingCreator"; import { TIsBindingForAction } from "./_types/TIsBindingForAction"; /** * Adds a requirement to createBinding such that it only accepts bindings that are directly or indirectly for the specified target action * @param action The action to add the createBinding requirement to * @param targetAction The action that the meta bindings should be fore * @returns The same input action with the additional input requirement */ export declare function addBindingCreatorRequirement<A extends IAction, T extends IAction>(action: A, targetAction: T): A extends { createBinding(binding: infer BI, ...rest: infer I): infer O; } ? Omit<A, "createBinding"> & { /** * Creates a new action binding * @param config The data for the binding, and optionally extra configuration * @returns The created binding */ createBinding<B extends BI>(binding: B & (B extends IActionBinding ? TIsBindingForAction<B, T> : B extends IBindingCreatorConfigOrData<infer K> ? K extends IActionBinding ? IBindingCreatorConfig<TIsBindingForAction<K, T>> : unknown : unknown), ...rest: I): O; } : A; //# sourceMappingURL=addBindingCreatorRequirement.d.ts.map