import { PropertyDataToParse } from '../../_types';
import { PropertyParsingError } from '../../error';
export interface ParseChainData {
    readonly propertyDataToParse: PropertyDataToParse<unknown>;
    readonly dto: Record<string, unknown>;
}
export interface ParseChain {
    parse(data: ParseChainData): PropertyParsingError | undefined;
}
export declare abstract class ParseChainBase implements ParseChain {
    private nextChain;
    setNextChain(nextChain: ParseChainBase): ParseChainBase;
    parse(data: ParseChainData): PropertyParsingError | undefined;
    protected abstract _parse(data: ParseChainData, next: (data: ParseChainData) => PropertyParsingError | undefined): PropertyParsingError | undefined;
}
