import { RulebricksClient } from "../Client.js"; import type { RuleImportPayload } from "../api/types/RuleImportPayload.js"; import { Field, RuleSettings, OperatorResult } from "./types.js"; import { BooleanField, NumberField, StringField, DateField, ListField } from "./operators.js"; export declare class RuleTest { id: string; name: string; request: Record; response: Record; critical: boolean; lastExecuted: string | null; testState: string | null; error: string | null; success: boolean | null; constructor(); private generateId; setName(name: string): RuleTest; expect(request: Record, response: Record): RuleTest; isCritical(critical?: boolean): RuleTest; toDict(): Record; static fromJSON(data: string | Record): RuleTest; } export declare class Condition { private rule; private index; private conditions; request: Record; response: Record; settings: { enabled: boolean; groupId: string | null; priority: number; schedule: Record[]; or?: boolean; }; constructor(rule: Rule, conditions?: Record, index?: number | null, settings?: Partial); private processVocabularyValues; when(conditions: Record): Condition; then(responses: Record): Rule | Condition; setPriority(priority: number): Condition; enable(): Condition; disable(): Condition; delete(): void; toString(): string; [Symbol.toStringTag](): string; toJSON(): Record; } export declare class Rule { id: string; name: string; description: string; folderId: string | null; slug: string; createdAt: string; updatedAt: string; updatedBy: string; published: boolean; private workspace?; private sampleRequest; private sampleResponse; testRequest: Record; private testSuite; fields: Record; responseFields: Record; conditions: Condition[]; private groups; private publishedRequestSchema; private publishedResponseSchema; private publishedConditions; private publishedGroups; private history; private form; accessGroups: string[]; settings: RuleSettings; constructor(); private generateUUID; private generateSlug; private getFieldType; setWorkspace(client: RulebricksClient): Rule; setName(name: string): Rule; setDescription(description: string): Rule; setFolder(folderName: string, createIfMissing?: boolean): Promise; setFolderById(folderId: string): Rule; setAlias(alias: string): Promise; addBooleanField(name: string, description?: string, defaultValue?: boolean): BooleanField; addNumberField(name: string, description?: string, defaultValue?: number): NumberField; addStringField(name: string, description?: string, defaultValue?: string): StringField; addDateField(name: string, description?: string, defaultValue?: Date): DateField; addListField(name: string, description?: string, defaultValue?: any[]): ListField; enableContinuousTesting(enabled?: boolean): Rule; enableSchemaValidation(enabled?: boolean): Rule; requireAllProperties(enabled?: boolean): Rule; lockSchema(enabled?: boolean): Rule; addAccessGroup(groupName: string, createIfMissing?: boolean): Promise; removeAccessGroup(groupName: string): Rule; addBooleanResponse(name: string, description?: string, defaultValue?: boolean): BooleanField; addNumberResponse(name: string, description?: string, defaultValue?: number): NumberField; addStringResponse(name: string, description?: string, defaultValue?: string): StringField; addDateResponse(name: string, description?: string, defaultValue?: Date): DateField; addListResponse(name: string, description?: string, defaultValue?: any[]): ListField; findConditions(conditions: Record): Condition[]; private getField; getBooleanField(name: string): BooleanField; getNumberField(name: string): NumberField; getStringField(name: string): StringField; getDateField(name: string): DateField; getListField(name: string): ListField; when(conditions?: Record): Condition; any(conditions: Record): Condition; getConditions(): Condition[]; getConditionCount(): number; addTest(test: RuleTest): Rule; removeTest(testId: string): Rule; findTestById(testId: string): RuleTest | undefined; findTestByName(name: string): RuleTest | undefined; update(): Promise; publish(): Promise; fromWorkspace(ruleId: string): Promise; toDict(): RuleImportPayload; toJSON(): string; static fromJSON(data: string | Record): Rule; getEditorUrl(): string; toTable(): string; toString(): string; }