import { Declaration, Expression, Literal, Meta, Namespace, Parameter, PartialSignature, Pattern, Predicate, PredicateClause, PredicateEffect, Program, RelationPart, Signature, Statement, TypeApp, TypeDef, TypeInit, SimulationGoal, InterpolationPart, Signal, MatchSearchCase, RecordField, Interpolation, Rank, SimulationContext, ForExpression, SamplingPool, TrailingTest, Contract, ContractCondition, REPL, ReplCommand, Metadata } from "../generated/crochet-grammar"; import * as rt from "../runtime"; import * as IR from "../runtime/ir"; import * as Logic from "../runtime/logic"; import * as Sim from "../runtime/simulation"; export declare enum DeclarationLocality { LOCAL = 0, PUBLIC = 1 } export declare function compileMeta(x: Meta, cmeta: Metadata): rt.IR.Interval; export declare function literalToValue(lit: Literal): rt.CrochetValue; export declare function signatureName(sig: Signature): string; export declare function signatureValues(sig: Signature): T[]; export declare function compileNamespace(x: Namespace): string; export declare function compileRelationTypes(types: RelationPart[]): Logic.TreeType; export declare function compilePattern(p: Pattern): Logic.Pattern; export declare function compilePredicateEffect(eff: PredicateEffect): rt.Effect.Trivial; export declare function compileSamplingPool(pool: SamplingPool): Logic.SamplingPool; export declare function compilePredicate(p: Predicate): Logic.Predicate; export declare function compilePredicateClause(p: PredicateClause): rt.PredicateClause; export declare function literalToExpression(lit: Literal): rt.IR.Expression; export declare function compileArgument(expr: Expression): IR.PartialExpr; export declare function compileInterpolation(value: Interpolation, f: (_: T) => U): IR.SimpleInterpolation; export declare function compileInterpolationPart(part: InterpolationPart, f: (_: T) => U): IR.SimpleInterpolationPart; export declare function compileMatchSearchCase(kase: MatchSearchCase): IR.MatchSearchCase; export declare function compileRecordField(field: RecordField): IR.RecordField; export declare function compileForExpression(expr: ForExpression): IR.ForallExpr; export declare function compileExpression(expr: Expression): IR.Expression; export declare function materialiseSignature(self: T, signature: PartialSignature): Signature; export declare function compileContractCondition(c: ContractCondition): rt.ContractCondition; export declare function compileContractReturn(c: TypeApp | null): rt.ContractCondition[]; export declare function compileContract(c: Contract): rt.Contract; export declare function compileTypeInit(meta: Meta, self: string, partialStmts: TypeInit[], locality: DeclarationLocality, override: boolean): IR.Declaration[]; export declare function compileSimulationGoal(goal: SimulationGoal): Sim.Goal; export declare function compileSignal(signal: Signal): rt.Signal; export declare function compileContext(context: SimulationContext): IR.SimulateContext; export declare function compileStatement(stmt: Statement): rt.IR.Statement; export declare function compileTypeApp(x: TypeApp): IR.Type; export declare function compileParameter(x: Parameter): { type: IR.Type; parameter: string; }; export declare function compileTrailingTest(title: string, types: IR.Type[], test: TrailingTest | null): IR.Declaration[]; export declare function compileParameters(xs0: Parameter[]): { types: rt.IR.Type[]; parameters: string[]; }; export declare function compileTypeDef(local: boolean, meta: IR.Metadata, t: TypeDef, fields: Parameter[]): rt.IR.DType; export declare function compileRank(r: Rank): IR.Expression; export declare function compileDeclaration(d: Declaration, locality: DeclarationLocality, override: boolean): IR.Declaration[]; export declare function compileRepl(p: REPL): IR.REPLExpr; export declare function compileReplCommand(x: ReplCommand): IR.REPLExpr; export declare function compileProgram(p: Program): rt.IR.Declaration[];