import type { TemplateResult } from 'lit-html';
import type { I18n } from '../I18n/I18n';
export declare enum Type {
NameValuePair = "name_value_pair",
Attribute = "attribute",
Boolean = "boolean",
String = "string",
Number = "number",
Date = "date",
Any = "any"
}
export declare enum Operator {
LessThanOrEqual = "lessthanorequal",
LessThan = "lessthan",
GreaterThanOrEqual = "greaterthanorequal",
GreaterThan = "greaterthan",
IsDefined = "isdefined",
Not = "not",
In = "in"
}
export declare type Option = {
group?: {
name: string;
layout?: string;
};
label: string;
list?: ({
value: string;
} & ({
label: string;
} | {
rawLabel: string;
}))[];
path: string;
type: Type;
min?: number | string;
};
export declare type Rule = {
operator: Operator | null;
invalid?: boolean;
value: string;
name?: string;
path: string;
};
export declare type SimpleRuleComponent = (params: {
disabled: boolean;
readonly: boolean;
option: Option;
rule: Rule | undefined;
t: I18n['t'];
onChange: (newValue: Partial> | null) => void;
}) => TemplateResult;
export declare type ConditionalOperator = {
type: Operator;
paths: string[];
};