@launchmenu/core
Version:
An environment for visual keyboard controlled applets
21 lines • 1.38 kB
TypeScript
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