import { Method } from '#csharp/code-dom/method';
import { Field } from './field';
import { Namespace } from './namespace';
import { Type } from './type';
import { Expression } from '#csharp/code-dom/expression';
import { Property } from '#csharp/code-dom/property';
import { Attribute } from '#csharp/code-dom/attribute';
export declare function sortByNamePartialFirst(a: Method, b: Method): number;
export declare class Class extends Type {
    parent?: Class | undefined;
    protected classOrStruct: 'class' | 'struct';
    isStatic: boolean;
    protected fields: Field[];
    addGeneratedCodeAttribute: boolean;
    constructor(namespace: Namespace, name: string, parent?: Class | undefined, objectIntializer?: Partial<Class>);
    private readonly codeGenAttribute;
    readonly signature: string;
    readonly definition: string;
    add<T extends object>(item: T & (Method | Property | Attribute | Field)): T;
    addField(field: Field): Field;
    readonly declaration: string;
    newInstance(...parameters: Array<Expression>): Expression;
    property(name: string): Property;
    $<T extends (Property | Method | Field)>(name: string): T;
}
//# sourceMappingURL=class.d.ts.map