import type { Children, Namekey, Refkey } from "@alloy-js/core"; import type { CallSignatureProps } from "./CallSignature.jsx"; import type { CommonDeclarationProps } from "./Declaration.jsx"; export interface ClassDeclarationProps extends CommonDeclarationProps { extends?: Children; implements?: Children[]; } /** * Create a TypeScript class declaration. * * @remarks * * @example * * ```tsx * const myPetRefkey = refkey(); * const Animal = refkey(); * const staticMember = refkey(); * const instanceMember = refkey(); * * * * "hello" * * * * * this.name = name; * * * * * new {Animal}(); * * * {staticMember}; // Animal.something * // myPet.name * {memberRefkey(myPetRefkey, instanceMember)} * ``` */ export declare function ClassDeclaration(props: ClassDeclarationProps): Children; export interface ClassMemberProps { name: string | Namekey; refkey?: Refkey; public?: boolean; private?: boolean; protected?: boolean; jsPrivate?: boolean; static?: boolean; children?: Children; doc?: Children; nullish?: boolean; } export declare function ClassMember(props: ClassMemberProps): Children; export interface ClassFieldProps extends ClassMemberProps { type?: Children; optional?: boolean; children?: Children; } export declare function ClassField(props: ClassFieldProps): Children; export interface ClassMethodProps extends ClassMemberProps, CallSignatureProps { async?: boolean; children?: Children; } export declare function ClassMethod(props: ClassMethodProps): Children; //# sourceMappingURL=ClassDeclaration.d.ts.map