import { SqrlSlot } from "./SqrlSlot"; import { Ast, LetAst, RuleAst, SwitchAst } from "../ast/Ast"; import { SerializedFeatureSlot } from "./SerializedSlot"; import { FeatureDoc, FeatureDefinition } from "../api/spec"; export interface CostProps { cost: number; recursiveCost: number; } export declare function buildDocDefinition(ast: RuleAst | LetAst, globalWhere: Ast): FeatureDefinition; export default class SqrlFeatureSlot extends SqrlSlot { private ast; private where; definitions: FeatureDefinition[]; private finalized; private final; private replaceable; private defaultCaseReplaceable; constructor(name: string); deserializor(data: SerializedFeatureSlot): void; serialize(): SerializedFeatureSlot; finalizedAst(): Ast; setAst(ast: Ast, where: Ast): void; getFirstLocation(): FeatureDefinition; buildDoc(costProps: CostProps): FeatureDoc; throwMultipleDefinitionsError(ast: Ast, previousDefinitions: Ast[]): never; addDefinition(ast: RuleAst | LetAst, globalWhere: Ast): void; getFeatureAst(): SwitchAst | null; allowReplace(): void; mergeGlobal(ast: LetAst, globalWhere: Ast, combineWheres: (whereAst: Ast, globalWhere: Ast) => { combinedAst: Ast; whereAst: Ast; whereFeatures: string[]; whereTruth: string; }): void; }