declare type CustomFieldName = `${string}__c`; declare type CustomRelationshipName = `${string}__r`; interface CustomSFSObject { Id: string; Name: string; [key: CustomFieldName]: string | number | boolean | null | undefined; [key: CustomRelationshipName]: CustomSFSObject; } interface StandardSFSObject { Id: string; [key: string]: string | number | boolean | null | undefined | StandardSFSObject | CustomSFSObject; } export default class SObject { id: string; protected readonly customProperties: Map; constructor(sObjectData?: CustomSFSObject | undefined, ignoredProperties?: Set); setCustomProperty(propertyName: string, value: any): void; getCustomProperty(propertyName: string): any; getSFSObject(): Partial; } declare enum Operator { EQUAL = 0, NOT_EQUAL = 1, LESS_THAN = 2, GREATER_THAN = 3 } interface ConditionElement { matches: (resource: SObject) => boolean; getFields: () => string[]; } declare class AndCondition implements ConditionElement { conditions: ConditionElement[]; constructor(conditions: ConditionElement[]); matches(resource: SObject): boolean; getFields(): string[]; } declare class OrCondition implements ConditionElement { conditions: ConditionElement[]; constructor(conditions: ConditionElement[]); matches(resource: SObject): boolean; getFields(): string[]; } declare class Condition implements ConditionElement { field: string; operator: Operator; value: string | number | boolean; constructor(field: string, operator: Operator, value: string | number | boolean); matches(resource: SObject): boolean; getFields(): string[]; } export { Condition, ConditionElement, AndCondition, OrCondition, Operator, CustomSFSObject, StandardSFSObject };