import { OneOrMoreStatements } from '#csharp/code-dom/statements/statement';
import { EnhancedTypeDeclaration } from './extended-type-declaration';
import { KnownMediaType } from '#common/media-types';
import { Variable } from '#csharp/code-dom/variable';
import { ExpressionOrLiteral, Expression } from '#csharp/code-dom/expression';
import { Schema } from '#csharp/lowlevel-generator/code-model';
export declare class Wildcard implements EnhancedTypeDeclaration {
    schema: Schema;
    protected leafType: EnhancedTypeDeclaration;
    isXmlAttribute: boolean;
    constructor(schema: Schema, leafType: EnhancedTypeDeclaration);
    readonly declaration: 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 serialize this to the value required by the container */
    serializeToNode(mediaType: KnownMediaType, value: ExpressionOrLiteral, serializedName: string): Expression;
    /** emits an expression serialize this to the value required by the container */
    serializeToContent(mediaType: KnownMediaType, value: ExpressionOrLiteral): Expression;
    /** emits an expression to deserialize content from a string */
    deserializeFromString(mediaType: KnownMediaType, content: ExpressionOrLiteral, defaultValue: Expression): Expression | undefined;
    /** emits the code required to serialize this into a container */
    serializeToContainerMember(mediaType: KnownMediaType, value: ExpressionOrLiteral, container: Variable, serializedName: string): OneOrMoreStatements;
    /** is the value of this type permitted to be NULL */
    isRequired: boolean;
    validatePresence(property: Variable): string;
    validateValue(property: Variable): string;
}
export declare class UntypedWildcard implements EnhancedTypeDeclaration {
    schema: Schema;
    isXmlAttribute: boolean;
    constructor(schema: Schema);
    /** 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 serialize this to the value required by the container */
    serializeToNode(mediaType: KnownMediaType, value: ExpressionOrLiteral, serializedName: string): Expression;
    /** emits an expression serialize this to the value required by the container */
    serializeToContent(mediaType: KnownMediaType, value: ExpressionOrLiteral): Expression;
    /** emits an expression to deserialize content from a string */
    deserializeFromString(mediaType: KnownMediaType, content: ExpressionOrLiteral, defaultValue: Expression): Expression | undefined;
    /** emits the code required to serialize this into a container */
    serializeToContainerMember(mediaType: KnownMediaType, value: ExpressionOrLiteral, container: Variable, serializedName: string): OneOrMoreStatements;
    /** is the value of this type permitted to be NULL */
    isRequired: boolean;
    readonly declaration: string;
    validatePresence(property: Variable): string;
    validateValue(property: Variable): string;
}
//# sourceMappingURL=wildcard.d.ts.map