import { KnownMediaType } from '@azure-tools/codemodel-v3';
import { Expression, ExpressionOrLiteral, StringExpression } from '@azure-tools/codegen-csharp';
import { OneOrMoreStatements } from '@azure-tools/codegen-csharp';
import { Variable } from '@azure-tools/codegen-csharp';
import { DateTimeSchema, UnixTimeSchema, DateSchema } from '@autorest/codemodel';
import { NewPrimitive } from './primitive';
export declare class DateTime extends NewPrimitive {
    isRequired: boolean;
    isXmlAttribute: boolean;
    jsonType: import("@azure-tools/codegen-csharp").ClassType;
    DateTimeFormat: StringExpression;
    get encode(): string;
    get declaration(): string;
    protected castJsonTypeToPrimitive(tmpValue: string, defaultValue: string): string;
    protected castXmlTypeToPrimitive(tmpValue: string, defaultValue: string): string;
    get convertObjectMethod(): string;
    serializeToNode(mediaType: KnownMediaType, value: ExpressionOrLiteral, serializedName: string, mode: Expression): Expression;
    serializeToContainerMember(mediaType: KnownMediaType, value: ExpressionOrLiteral, container: Variable, serializedName: string, mode: Expression): OneOrMoreStatements;
    constructor(schema: DateTimeSchema | DateSchema, isRequired: boolean);
    validateValue(eventListener: Variable, property: Variable): string;
}
export declare class DateTime1123 extends DateTime {
    DateTimeFormat: StringExpression;
    constructor(schema: DateTimeSchema, isRequired: boolean);
}
export declare class UnixTime extends NewPrimitive {
    isRequired: boolean;
    isXmlAttribute: boolean;
    jsonType: import("@azure-tools/codegen-csharp").ClassType;
    private EpochDate;
    get encode(): string;
    protected castJsonTypeToPrimitive(tmpValue: string, defaultValue: string): string;
    protected castXmlTypeToPrimitive(tmpValue: string, defaultValue: string): string;
    serializeToNode(mediaType: KnownMediaType, value: ExpressionOrLiteral, serializedName: string, mode: Expression): Expression;
    /** emits an expression serialize this to the value required by the container */
    _serializeToNode(mediaType: KnownMediaType, value: ExpressionOrLiteral, serializedName: string, mode: Expression): Expression;
    get q(): string;
    get longType(): string;
    constructor(schema: UnixTimeSchema, isRequired: boolean);
    validateValue(eventListener: Variable, property: Variable): string;
    get declaration(): string;
}
//# sourceMappingURL=date-time.d.ts.map