import { InterfaceReferenceMetadata } from "../metadata"; /** * Describes the implementation of an interface. */ export interface InterfaceSpec { interfaceName: string; qualifier?: string | undefined; } export declare function renderInterfaceSpec({ interfaceName, qualifier }: InterfaceSpec): string; export interface SingleImplementationSpec extends InterfaceSpec { all?: undefined; } export interface AllImplementationsSpec extends Pick { all: true; } /** * Describes a reference to one or more implementations of an interface. */ export type ReferenceSpec = SingleImplementationSpec | AllImplementationsSpec; export declare function parseReferenceSpec(metadata: InterfaceReferenceMetadata): ReferenceSpec; export declare function isSingleImplementationSpec(spec: ReferenceSpec): spec is SingleImplementationSpec; export declare function isAllImplementationsSpec(spec: ReferenceSpec): spec is AllImplementationsSpec;