import type { Trait } from "@tsimpl/core"; import type { TraitDescriptor } from "../types/trait-descriptor.js"; import type { TraitImplInput } from "../types/trait-impl.js"; import type { StructImpl, StructStatics } from "../types/struct-impl.js"; import type { StructToken } from "../types/struct-descriptor.js"; export declare function impl(traitDescriptor: TraitDescriptor): { for(target: object | Function | StructToken, implementation: TraitImplInput, options?: { as?: boolean; slot?: boolean; }): void; }; export declare function impl>(structToken: StructToken, definition: TImpl): asserts structToken is StructToken & StructStatics;