import pt from "@cicada-lang/partech"; import { Exp } from "../../exp"; import * as Exps from "../../exps"; export declare function pi_handler(body: { [key: string]: pt.Tree; }, meta: { span: pt.Span; }): Exp; export declare function fn_handler(body: { [key: string]: pt.Tree; }): Exp; export declare function sigma_handler(body: { [key: string]: pt.Tree; }, meta: { span: pt.Span; }): Exp; export declare function exp_matcher(tree: pt.Tree): Exp; export declare function operator_matcher(tree: pt.Tree): Exp; export declare function operand_matcher(tree: pt.Tree): Exp; export declare function declaration_matcher(tree: pt.Tree): Exp; export declare function cls_entry_matcher(tree: pt.Tree): { field_name: string; field_t: Exp; field?: Exp; span: pt.Span; }; declare type Binding = { kind: "named"; name: string; exp: Exp; span: pt.Span; } | { kind: "implicit"; entries: Array<{ name: string; exp: Exp; }>; last_entry: { name: string; exp: Exp; }; span: pt.Span; }; export declare function bindings_matcher(tree: pt.Tree): Array; export declare function binding_matcher(tree: pt.Tree): Binding; export declare function binding_implicit_entry_matcher(tree: pt.Tree): { name: string; exp: Exp; }; export declare function names_matcher(tree: pt.Tree): Array; declare type NameEntry = { kind: "name"; name: string; span: pt.Span; } | { kind: "implicit"; names: Array; last_name: string; span: pt.Span; }; export declare function name_entry_matcher(tree: pt.Tree): NameEntry; export declare function name_implicit_entry_matcher(tree: pt.Tree): string; export declare function exps_matcher(tree: pt.Tree): Array; export declare function args_matcher(tree: pt.Tree): Array; export declare function arg_implicit_entry_matcher(tree: pt.Tree): { name: string; exp: Exp; }; export declare function property_matcher(tree: pt.Tree): Exps.Prop; export {};