/** * Odoo domain parser — tokenizer + recursive descent parser. * * Parses the Python-literal subset used in Odoo domain expressions: * * '[("stage_id.name","=","Won"),("active","=",True)]' * '["|",("name","ilike","acme"),("ref","ilike","acme")]' * * Converts Python literals to JSON-compatible values: * True → true * False → false * None → null * (a,b) → [a, b] (tuples become arrays) * * Three input paths: * parseDomainArg() - from --domain flag (Python literal syntax) * parseDomainJson() - from --domain-json flag (strict JSON) * parseFilterArgs() - from --filter K=V pairs (simple equality) */ export declare class DomainParseError extends Error { readonly position?: number | undefined; readonly input?: string | undefined; constructor(message: string, position?: number | undefined, input?: string | undefined); } /** * Parse an Odoo domain string (Python literal syntax) into a JSON array. * * @example * parseDomainArg('[("name","ilike","acme"),("active","=",True)]') * // → [["name","ilike","acme"],["active","=",true]] */ export declare function parseDomainArg(input: string): any[]; /** * Parse a strict JSON domain string. * * @example * parseDomainJson('[["name","ilike","acme"]]') */ export declare function parseDomainJson(input: string): any[]; /** * Parse --filter K=V pairs into domain terms. * * Type inference: * "true"/"false" → boolean * all-digit string → integer * otherwise → string * * @example * parseFilterArgs(['active=true', 'state=sale']) * // → [['active','=',true],['state','=','sale']] */ export declare function parseFilterArgs(filters: string[]): any[][]; /** * Combine a base domain with filter terms (AND). */ export declare function combineDomains(baseDomain: any[], filterTerms: any[][]): any[]; /** * Read domain from a file path. '-' reads from stdin. */ export declare function readDomainFile(filePath: string): Promise; //# sourceMappingURL=domain-parser.d.ts.map