import { InternalResult } from '../../ConfinodeResult';
import ConfigDescription, { ConfigDescriptionParameter, ParserContext } from '../ConfigDescription';
/**
 * Description of a conditional configuration.
 */
export default class ConditionalDescription<I, E> implements ConfigDescription<I | E> {
    private readonly predicate;
    private readonly ifDescription;
    private readonly elseDescription;
    /**
     * Create a conditional configuration description.
     *
     * @param predicate - The predicate to test the value against.
     * @param ifDescription - The description to use if predicate is true.
     * @param elseDescription - The description to use if predicate is false.
     */
    constructor(predicate: (value: unknown) => boolean, ifDescription: ConfigDescriptionParameter<I>, elseDescription: ConfigDescriptionParameter<E>);
    parse(data: unknown, context: ParserContext<I | E>): InternalResult<I | E> | undefined;
}
