import { FieldSerializerRules } from './field-serializer-rules';
import { FieldSerializerConfigurator } from './field-serializer.configurator';
import { DbHelperModel } from '../../models/db-helper-model.model';
import { FieldSerializerError } from './field-serializer.error';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/Observable/empty';
import 'rxjs/add/Observable/from';
import 'rxjs/add/operator/switchMap';
import 'rxjs/add/operator/catch';
export declare abstract class FieldSerializer {
    fieldName: string;
    jsonKey: string;
    rules: FieldSerializerRules;
    private partial;
    constructor(fieldName: string, jsonKey: string, config?: FieldSerializerConfigurator);
    isValid(data: any): FieldSerializerError | null;
    protected abstract checkFieldRules(data: any): FieldSerializerError | null;
    serialize(from: DbHelperModel, to: any): Observable<null>;
    deserialize(from: any, to: DbHelperModel): Observable<FieldSerializerError | null>;
}
