import type { Constructable, IRegistry } from '@aurelia/kernel'; import { registrableMetadataKey } from '@aurelia/kernel'; export interface AttributePatternDefinition { pattern: T; symbols: string; } export declare class AttrSyntax { rawName: string; rawValue: string; target: string; command: string | null; parts: readonly string[] | null; constructor(rawName: string, rawValue: string, target: string, command: string | null, parts?: readonly string[] | null); } export type IAttributePattern = Record AttrSyntax>; export declare const IAttributePattern: import("@aurelia/kernel").InterfaceSymbol>; export declare class Interpretation { parts: readonly string[]; get pattern(): string | null; set pattern(value: string | null); } export interface ISyntaxInterpreter { add(defs: AttributePatternDefinition[]): void; interpret(name: string): Interpretation; } export declare const ISyntaxInterpreter: import("@aurelia/kernel").InterfaceSymbol; export declare class SyntaxInterpreter implements ISyntaxInterpreter { add(defs: AttributePatternDefinition[]): void; interpret(name: string): Interpretation; } export interface IAttributeParser { registerPattern(patterns: AttributePatternDefinition[], Type: Constructable): void; parse(name: string, value: string): AttrSyntax; } export declare const IAttributeParser: import("@aurelia/kernel").InterfaceSymbol; export declare class AttributeParser implements IAttributeParser { registerPattern(patterns: AttributePatternDefinition[], Type: Constructable): void; parse(name: string, value: string): AttrSyntax; } export interface AttributePatternKind { readonly name: string; create> = Constructable>>(patternDefs: K[], Type: P): IRegistry; } export declare function attributePattern(...patternDefs: K[]): >>(target: T, context: ClassDecoratorContext) => T; export declare const AttributePattern: Readonly; export declare class DotSeparatedAttributePattern { static [Symbol.metadata]: { [registrableMetadataKey]: IRegistry; }; 'PART.PART'(rawName: string, rawValue: string, parts: readonly string[]): AttrSyntax; 'PART.PART.PART'(rawName: string, rawValue: string, parts: readonly string[]): AttrSyntax; } export declare class RefAttributePattern { static [Symbol.metadata]: { [registrableMetadataKey]: IRegistry; }; 'ref'(rawName: string, rawValue: string, _parts: readonly string[]): AttrSyntax; 'PART.ref'(rawName: string, rawValue: string, parts: readonly string[]): AttrSyntax; } export declare class EventAttributePattern { static [Symbol.metadata]: { [registrableMetadataKey]: IRegistry; }; 'PART.trigger:PART'(rawName: string, rawValue: string, parts: readonly string[]): AttrSyntax; 'PART.capture:PART'(rawName: string, rawValue: string, parts: readonly string[]): AttrSyntax; } export declare class ColonPrefixedBindAttributePattern { static [Symbol.metadata]: { [registrableMetadataKey]: IRegistry; }; ':PART'(rawName: string, rawValue: string, parts: readonly string[]): AttrSyntax; } export declare class AtPrefixedTriggerAttributePattern { static [Symbol.metadata]: { [registrableMetadataKey]: IRegistry; }; '@PART'(rawName: string, rawValue: string, parts: readonly string[]): AttrSyntax; '@PART:PART'(rawName: string, rawValue: string, parts: readonly string[]): AttrSyntax; } //# sourceMappingURL=attribute-pattern.d.ts.map