import { PrimitiveType, EnumDescriptor, MessageDescriptor } from "@selfage/message/descriptor";
import { ObservableDescriptor } from "./descriptor";
export declare class ObservableAssembler {
    private sourceCheckFn;
    private outputNulliyFn;
    private arrayCheckFn;
    private arrayResetFn;
    private arrayPopFn;
    private processPrimitiveType;
    private processEnumType;
    private processMessageType;
    constructor(sourceCheckFn: (source: any) => boolean, outputNulliyFn: (output?: any) => any, arrayCheckFn: (sourceField: any) => boolean, arrayResetFn: (ret: any, fieldName: string) => void, arrayPopFn: (retArrayField: any, targetLength: number) => void, processPrimitiveType: (sourceField: any, primitiveType: PrimitiveType, outputField?: any) => any, processEnumType: (sourceField: any, enumType: EnumDescriptor<any>, outputField?: any) => any, processMessageType: (sourceField: any, messageType: MessageDescriptor<any>, outputField?: any) => any);
    processObservableType<T>(source: any, descriptor: ObservableDescriptor<T>, output?: T): T;
    private processField;
}
