import type { Constructable, IContainer, ResourceDefinition, ResourceType, PartialResourceDefinition, IServiceLocator } from '@aurelia/kernel'; import { type IResourceKind } from './resources-shared'; export type PartialValueConverterDefinition = PartialResourceDefinition; export type ValueConverterStaticAuDefinition = PartialValueConverterDefinition & { type: 'value-converter'; }; export type ValueConverterType = ResourceType; export type ValueConverterInstance = { signals?: string[]; withContext?: boolean; toView(input: unknown, ...args: unknown[]): unknown; fromView?(input: unknown, ...args: unknown[]): unknown; } & T; export interface ICallerContext { source?: unknown; binding: unknown; } export type ValueConverterKind = IResourceKind & { isType(value: T): value is (T extends Constructable ? ValueConverterType : never); define(name: string, Type: T, decoratorContext?: DecoratorContext): ValueConverterType; define(def: PartialValueConverterDefinition, Type: T, decoratorContext?: DecoratorContext): ValueConverterType; define(nameOrDef: string | PartialValueConverterDefinition, Type: T, decoratorContext?: DecoratorContext): ValueConverterType; getDefinition(Type: T): ValueConverterDefinition; annotate(Type: Constructable, prop: K, value: PartialValueConverterDefinition[K]): void; getAnnotation(Type: Constructable, prop: K, context: DecoratorContext | null): PartialValueConverterDefinition[K] | undefined; find(container: IContainer, name: string): ValueConverterDefinition | null; get(container: IServiceLocator, name: string): ValueConverterInstance; }; export type ValueConverterDecorator = (Type: T, context: ClassDecoratorContext) => ValueConverterType; export declare function valueConverter(definition: PartialValueConverterDefinition): ValueConverterDecorator; export declare function valueConverter(name: string): ValueConverterDecorator; export declare function valueConverter(nameOrDef: string | PartialValueConverterDefinition): ValueConverterDecorator; export declare class ValueConverterDefinition implements ResourceDefinition { readonly Type: ValueConverterType; readonly name: string; readonly aliases: readonly string[]; readonly key: string; private constructor(); static create(nameOrDef: string | PartialValueConverterDefinition, Type: ValueConverterType): ValueConverterDefinition; register(container: IContainer, aliasName?: string): void; } export declare const ValueConverter: Readonly; //# sourceMappingURL=value-converter.d.ts.map