import type { Expression } from '../expression';
import type ParsingContext from '../parsing_context';
import type EvaluationContext from '../evaluation_context';
import type { Type } from '../types';
declare type Branches = Array<[Expression, Expression]>;
declare class Case implements Expression {
    type: Type;
    branches: Branches;
    otherwise: Expression;
    constructor(type: Type, branches: Branches, otherwise: Expression);
    static parse(args: ReadonlyArray<unknown>, context: ParsingContext): Expression | undefined | null;
    evaluate(ctx: EvaluationContext): any;
    eachChild(fn: (_: Expression) => void): void;
    outputDefined(): boolean;
    serialize(): unknown[];
}
export default Case;
//# sourceMappingURL=case.d.ts.map