import { Constructable, IContainer, IResourceKind, ResourceType, ResourceDefinition, PartialResourceDefinition } from '@aurelia/kernel'; import { BindingType, ITargetedInstruction } from '@aurelia/runtime'; import { BindingSymbol, PlainAttributeSymbol } from './semantic-model'; export declare type PartialBindingCommandDefinition = PartialResourceDefinition<{ readonly type?: string | null; }>; export declare type BindingCommandInstance = { bindingType: BindingType; compile(binding: PlainAttributeSymbol | BindingSymbol): ITargetedInstruction; } & T; export declare type BindingCommandType = ResourceType; export declare type BindingCommandKind = IResourceKind & { isType(value: T): value is (T extends Constructable ? BindingCommandType : never); define(name: string, Type: T): BindingCommandType; define(def: PartialBindingCommandDefinition, Type: T): BindingCommandType; define(nameOrDef: string | PartialBindingCommandDefinition, Type: T): BindingCommandType; getDefinition(Type: T): BindingCommandDefinition; annotate(Type: Constructable, prop: K, value: PartialBindingCommandDefinition[K]): void; getAnnotation(Type: Constructable, prop: K): PartialBindingCommandDefinition[K]; }; export declare type BindingCommandDecorator = (Type: T) => BindingCommandType; export declare function bindingCommand(name: string): BindingCommandDecorator; export declare function bindingCommand(definition: PartialBindingCommandDefinition): BindingCommandDecorator; export declare class BindingCommandDefinition implements ResourceDefinition { readonly Type: BindingCommandType; readonly name: string; readonly aliases: readonly string[]; readonly key: string; readonly type: string | null; private constructor(); static create(nameOrDef: string | PartialBindingCommandDefinition, Type: BindingCommandType): BindingCommandDefinition; register(container: IContainer): void; } export declare const BindingCommand: BindingCommandKind; export declare function getTarget(binding: PlainAttributeSymbol | BindingSymbol, makeCamelCase: boolean): string; //# sourceMappingURL=binding-command.d.ts.map