import type { CompactOrOp } from '../codec/compact/types';
import { AbstractSecondOrderPredicateOp } from './AbstractSecondOrderPredicateOp';
import type { AbstractPredicateOp } from './AbstractPredicateOp';
import type { OperationOr } from '../types';
import { OPCODE } from '../constants';
import { type Path } from '@jsonjoy.com/json-pointer';
import type { AbstractOp } from './AbstractOp';
import type { IMessagePackEncoder } from '@jsonjoy.com/json-pack/lib/msgpack';
/**
 * @category JSON Predicate
 */
export declare class OpOr extends AbstractSecondOrderPredicateOp<'or'> {
    readonly ops: AbstractPredicateOp[];
    constructor(path: Path, ops: AbstractPredicateOp[]);
    op(): "or";
    code(): OPCODE;
    test(doc: unknown): boolean;
    toJson(parent?: AbstractOp): OperationOr;
    toCompact(parent: undefined | AbstractOp, verbose: boolean): CompactOrOp;
    encode(encoder: IMessagePackEncoder, parent?: AbstractOp): void;
}
