import { InternalMapping } from "./internalMapping";
import { MappingBase } from "./mappingBase";
import { MappingModel } from "./mappingModel";
import { Reference } from "../reference";
import { InternalSession } from "../session";
import { ResultCallback } from "../core/callback";
import { ResolveContext } from "./resolveContext";
import { ReadContext } from "./readContext";
import { Observer } from "../observer";
import { WriteContext } from "./writeContext";
export declare class TupleMapping extends MappingBase {
    elementMappings: InternalMapping[];
    constructor(elementMappings: InternalMapping[]);
    read(context: ReadContext, value: any): any;
    write(context: WriteContext, value: any): any;
    watch(value: any, observer: Observer, visited: any[]): void;
    areEqual(documentValue1: any, documentValue2: any): boolean;
    walk(session: InternalSession, value: any, flags: MappingModel.PropertyFlags, entities: any[], embedded: any[], references: Reference[]): void;
    fetch(session: InternalSession, parentEntity: any, value: any, path: string[], depth: number, callback: ResultCallback<any>): void;
    protected resolveCore(context: ResolveContext): void;
}
