import { KnownMediaType } from '@azure-tools/codemodel-v3';
import { Expression, ExpressionOrLiteral } from '@azure-tools/codegen-csharp';
import { OneOrMoreStatements } from '@azure-tools/codegen-csharp';
import { Variable } from '@azure-tools/codegen-csharp';
import { Schema as NewSchema } from '@autorest/codemodel';
import { EnhancedTypeDeclaration } from './extended-type-declaration';
export declare class FixedArrayOf implements EnhancedTypeDeclaration {
    schema: NewSchema;
    isRequired: boolean;
    elementType: EnhancedTypeDeclaration;
    protected minItems: number | undefined;
    protected maxItems: number | undefined;
    protected unique: boolean | undefined;
    isXmlAttribute: boolean;
    isNullable: boolean;
    get defaultOfType(): Expression;
    constructor(schema: NewSchema, isRequired: boolean, elementType: EnhancedTypeDeclaration, minItems: number | undefined, maxItems: number | undefined, unique: boolean | undefined);
    protected get isWrapped(): boolean;
    protected get wrapperName(): string | undefined;
    protected get serializedName(): string | undefined;
    get elementTypeDeclaration(): string;
    get declaration(): string;
    get encode(): string;
    get convertObjectMethod(): string;
    /** emits an expression to deserialize a property from a member inside a container */
    deserializeFromContainerMember(mediaType: KnownMediaType, container: ExpressionOrLiteral, serializedName: string, defaultValue: Expression): Expression;
    /** emits an expression to deserialze a container as the value itself. */
    deserializeFromNode(mediaType: KnownMediaType, node: ExpressionOrLiteral, defaultValue: Expression): Expression;
    /** emits an expression to deserialize content from a string */
    deserializeFromString(mediaType: KnownMediaType, content: ExpressionOrLiteral, defaultValue: Expression): Expression | undefined;
    /** emits an expression to deserialize content from a content/response */
    deserializeFromResponse(mediaType: KnownMediaType, content: ExpressionOrLiteral, defaultValue: Expression): Expression | undefined;
    /** emits an expression serialize this to a HttpContent */
    serializeToNode(mediaType: KnownMediaType, value: ExpressionOrLiteral, serializedName: string, mode: Expression): Expression;
    /** emits an expression serialize this to the value required by the container */
    serializeToContent(mediaType: KnownMediaType, value: ExpressionOrLiteral, mode: Expression): Expression;
    /** emits the code required to serialize this into a container */
    serializeToContainerMember(mediaType: KnownMediaType, value: ExpressionOrLiteral, container: Variable, serializedName: string, mode: Expression): OneOrMoreStatements;
    validatePresence(eventListener: Variable, property: Variable): OneOrMoreStatements;
    validateValue(eventListener: Variable, property: Variable): OneOrMoreStatements;
}
//# sourceMappingURL=fixed-array.d.ts.map