UNPKG

@k8ts/instruments

Version:

A collection of utilities and core components for k8ts.

38 lines 1.83 kB
export type KnownFormats = "local" | "global" | undefined; export declare namespace Displayers { interface Out { default: (format?: string) => string; simple: (format?: KnownFormats | string) => string; pretty: (format?: KnownFormats | string) => string; prefix?: () => string; } type In<Target extends object = object> = { simple?: (this: Out, self: Target, format?: string) => string | object; pretty?: (this: Out, self: Target, format?: string) => string | object; prefix?: (this: Out, self: Target) => string; }; type Modes = keyof In; } declare class DisplayerDecorator { private _system; private _lastMode; private _withLastMode; implement(ctor: typeof PrivateCtorExemplar, input: Displayers.In): void; wrapRecursiveFallback(out: Displayers.Out): Displayers.Out; tryGet(target: any): Displayers.Out | undefined; get(target: object): Displayers.Out; get decorator(): <Target extends AnyCtor<any>, Impl extends Displayers.In<InstanceTypeOf<Target>>>(input: Impl) => (ctor: Target) => void; } export type PrivateCtor<T extends object> = typeof PrivateCtorExemplar & { prototype: T; }; export type PublicCtor<T extends object> = abstract new (...args: any[]) => T; export type AnyCtor<T extends object> = PrivateCtor<T> | PublicCtor<T>; export type InstanceTypeOf<T extends AnyCtor<any>> = T extends PrivateCtor<infer U> ? U : T extends PublicCtor<infer U> ? U : never; declare abstract class PrivateCtorExemplar { protected constructor(...args: any[]); } export declare const Displayers: DisplayerDecorator; export declare const displayers: <Target extends AnyCtor<any>, Impl extends Displayers.In<InstanceTypeOf<Target>>>(input: Impl) => (ctor: Target) => void; export {}; //# sourceMappingURL=displayers.d.ts.map