import { UnionToIntersection, Version } from "./_namespaces/ts.js"; /** @internal */ export interface DeprecationOptions { message?: string; error?: boolean; since?: Version | string; warnAfter?: Version | string; errorAfter?: Version | string; typeScriptVersion?: Version | string; name?: string; } /** * Defines a list of overloads by ordinal * * @internal */ export type OverloadDefinitions = { readonly [P in number]: (...args: any[]) => any; }; /** * Extracts the ordinals from an set of overload definitions. * * @internal */ export type OverloadKeys = Extract; /** * Extracts a union of the potential parameter lists for each overload. * * @internal */ export type OverloadParameters = Parameters<{ [P in OverloadKeys]: T[P]; }[OverloadKeys]>; /** * Constructs an intersection of each overload in a set of overload definitions. * * @internal */ export type OverloadFunction = UnionToIntersection; /** * Maps each ordinal in a set of overload definitions to a function that can be used to bind its arguments. * * @internal */ export type OverloadBinders = { [P in OverloadKeys]: (args: OverloadParameters) => boolean | undefined; }; /** * Defines deprecations for specific overloads by ordinal. * * @internal */ export type OverloadDeprecations = { [P in OverloadKeys]?: DeprecationOptions; }; /** @internal @knipignore */ export declare function createOverload(name: string, overloads: T, binder: OverloadBinders, deprecations?: OverloadDeprecations): OverloadFunction; /** @internal */ export interface OverloadBuilder { overload(overloads: T): BindableOverloadBuilder; } /** @internal */ export interface BindableOverloadBuilder { bind(binder: OverloadBinders): BoundOverloadBuilder; } /** @internal */ export interface FinishableOverloadBuilder { finish(): OverloadFunction; } /** @internal */ export interface BoundOverloadBuilder extends FinishableOverloadBuilder { deprecate(deprecations: OverloadDeprecations): FinishableOverloadBuilder; } /** @internal @knipignore */ export declare function buildOverload(name: string): OverloadBuilder; //# sourceMappingURL=deprecations.d.ts.map