import { Initializer, DeepPartial } from '@azure-tools/codegen';
import { TypeDeclaration } from '@azure-tools/codegen-csharp';
import { Class } from '@azure-tools/codegen-csharp';
import { Parameter } from '@azure-tools/codegen-csharp';
import { EnhancedTypeDeclaration } from '../schema/extended-type-declaration';
import { Schema as NewSchema } from '@autorest/codemodel';
export declare class SerializationPartialClass extends Initializer {
    protected targetClass: Class;
    protected targetInterface: TypeDeclaration;
    protected serializationType: TypeDeclaration;
    protected serializationFormat: string;
    protected schema: NewSchema;
    protected resolver: (s: NewSchema, req: boolean) => EnhancedTypeDeclaration;
    constructor(targetClass: Class, targetInterface: TypeDeclaration, serializationType: TypeDeclaration, serializationFormat: string, schema: NewSchema, resolver: (s: NewSchema, req: boolean) => EnhancedTypeDeclaration, objectInitializer?: DeepPartial<SerializationPartialClass>);
    protected get virtualProperties(): any;
    protected get allVirtualProperties(): unknown[];
    protected contentParameter: Parameter;
    protected refContainerParameter: Parameter;
    protected returnNowParameter: Parameter;
    protected get typeCref(): string;
    protected get thisCref(): string;
    protected get interfaceCref(): string;
}
export declare class DeserializerPartialClass extends SerializationPartialClass {
    protected serializationType: TypeDeclaration;
    protected serializationFormat: string;
    protected schema: NewSchema;
    private beforeDeserialize;
    private afterDeserialize;
    constructor(targetClass: Class, targetInterface: TypeDeclaration, serializationType: TypeDeclaration, serializationFormat: string, schema: NewSchema, resolver: (s: NewSchema, req: boolean) => EnhancedTypeDeclaration, objectInitializer?: DeepPartial<DeserializerPartialClass>);
    init(): Promise<void>;
    protected addDeserializerConstructor(): void;
    private hasAadditionalProperties;
    get deserializeStatements(): () => Generator<import("@azure-tools/codegen-csharp").IfStatement | "// actually deserialize ", void, unknown>;
    protected addDeserializerMethod(): void;
    protected addPartialMethods(): void;
}
//# sourceMappingURL=model-class-serializer.d.ts.map