import * as silentium from 'silentium'; import { MaybeMessage, MessageType, ConstructorType, DestroyableType, MessageSourceType } from 'silentium'; /** * Allows switching between left and right messages depending on condition * https://silentium.pw/article/branch/view */ declare function Branch(_condition: MaybeMessage, _left: MaybeMessage, _right?: MaybeMessage): silentium.MessageImpl; /** * Depending on the $condition message, * creates a new left or right message. * When condition changes, old messages are destroyed * and new ones are created. */ declare function BranchLazy($condition: MessageType, $left: ConstructorType<[], MessageType>, $right?: ConstructorType<[], MessageType>): MessageType & DestroyableType; /** * Constant value that will be * returned on each value from * the $trigger message */ declare function Constant(permanent: T, $trigger: MessageType): MessageType; /** * Will return an error via error transport if * time runs out from $timeout; if $base manages to * respond before $timeout then the value from base will be returned */ declare function Deadline($base: MessageType, _timeout: MaybeMessage): silentium.MessageImpl; /** * Defer one source after another, gives values Of baseSrc only when triggerSrc responds * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred */ declare function Deferred($base: MessageType, $trigger: MessageType): silentium.MessageImpl; /** * Message separate from the base * allows to take one value from the base * but not react to new values of the base message */ declare function Detached($base: MessageType): MessageType; /** * Takes source and remember it first value * returns new record, what will contain only fields what was changed * https://silentium-lab.github.io/silentium-components/#/behaviors/dirty */ declare function Dirty>($base: MessageType, keep?: string[], exclude?: string[], cloner?: (v: T) => T): silentium.SourceImpl; declare function Getter(_base: MaybeMessage, _method: MaybeMessage, def?: MaybeMessage): MessageType; /** * Representation Of loading process * first message begins loading * second message stops loading * https://silentium-lab.github.io/silentium-components/#/behaviors/loading */ declare function Loading($start: MessageType, $finish: MessageType): silentium.MessageImpl; /** * Allows locking messages * if a $lock message arrives * https://silentium-lab.github.io/silentium-components/#/behaviors/lock */ declare function Lock($base: MessageType, $lock: MessageType): silentium.MessageImpl; /** * Didn't respond if new value Of baseSrc equals to old value * https://silentium-lab.github.io/silentium-components/#/behaviors/memo */ declare function Memo($base: MessageType): silentium.MessageImpl; /** * Есть объект и каждое новое его значение нужно мержить с прошлым * чтобы накопить общие изменения */ declare function MergeAccumulation($base: MessageType, $reset?: MessageType): MessageType; /** * Represents source what was changed at least once * @url https://silentium.pw/article/only-changed/view */ declare function OnlyChanged($base: MessageType): silentium.MessageImpl; /** * Return source Of record path * @url https://silentium.pw/article/part/view */ declare function Part = any, K extends string = any>($base: MessageSourceType, key: MaybeMessage, defaultValue?: R): MessageSourceType; /** * Return source Of record path * https://silentium-lab.github.io/silentium-components/#/behaviors/path */ declare function Path = any, K extends string = any>(_base: MaybeMessage, _keyed: MaybeMessage, def?: MaybeMessage): MessageType; /** * Active polling of $base message * synchronized with $trigger message * can return same values */ declare function Polling($base: MessageType, $trigger: MessageType): silentium.MessageImpl; /** * Helps eliminate unwanted values * that shouldn't exist in object fields */ declare function RecordTruncated(_record: MaybeMessage>, _badValues: MaybeMessage): silentium.MessageImpl; declare function StateRecord(state$: MessageType, values$: MessageType, sequence: MaybeMessage): silentium.MessageImpl; /** * Switch between many messages by known value */ declare function Switch(_base: MaybeMessage, options: [K | K[], MessageType][]): silentium.MessageImpl; /** * Defer a message to the event loop * so that it executes once within * a certain timer firing interval * * @url https://silentium.pw/article/task/view */ declare function Task(baseSrc: MaybeMessage, delay?: number): silentium.MessageImpl; /** * Accumulates the last value Of the source and returns one result once per tick * * @url https://silentium.pw/article/tick/view */ declare function Tick($base: MessageType): silentium.MessageImpl; /** * Modify the object structure * with the ability to create new fields based on * existing ones in the object * * @url https://silentium.pw/article/transformed/view */ declare function Transformed>(_base: MaybeMessage, transformRules: Record]>>): silentium.MessageImpl; declare function TransformedList(_base: MaybeMessage, transformRules: Record]>>): silentium.MessageImpl; /** * Logical AND over two messages * https://silentium-lab.github.io/silentium-components/#/boolean/and */ declare function And($one: MessageType, $two: MessageType): silentium.MessageImpl; /** * Convert Any source to boolean source * https://silentium-lab.github.io/silentium-components/#/boolean/bool */ declare function Bool($base: MessageType): silentium.MessageImpl; /** * Logical negation of message * https://silentium-lab.github.io/silentium-components/#/boolean/not */ declare function Not($base: MessageType): silentium.MessageImpl; /** * Logical OR over two messages * https://silentium-lab.github.io/silentium-components/#/boolean/or */ declare function Or($one: MessageType, $two: MessageType): silentium.MessageImpl; /** * Represents object from json */ declare function FromJson>($json: MessageType): silentium.MessageImpl; /** * Represents json from object */ declare function ToJson($data: MessageType): silentium.MessageImpl; /** * Represents the first element Of an array. */ declare function First>($base: MessageType): silentium.MessageImpl; interface Route { pattern?: string; patternFlags?: string; condition?: (v: unknown) => boolean; message: ConstructorType<[], MaybeMessage>; } /** * Router component what will return template if url matches pattern * * @url https://silentium.pw/article/router/view */ declare function Router(_url: MaybeMessage, routes: MaybeMessage[]>, $default: ConstructorType<[], MaybeMessage>): MessageType & DestroyableType; /** * Join sources Of strings to one source * https://silentium-lab.github.io/silentium-components/#/string/concatenated */ declare function Concatenated(sources: MessageType[], joinPartSrc?: MessageType): silentium.MessageImpl; /** * Allows creating a string template with * variables inserted into it; when variables change, * the template value will change * * @url https://silentium.pw/article/template/view */ declare function Template(src?: MaybeMessage | ((t: TemplateImpl) => string), $places?: MaybeMessage>): TemplateImpl; declare class TemplateImpl implements MessageType, DestroyableType { private $src; private $places; private escapeFn; private dc; private rejections; private vars; constructor($src?: MessageType, $places?: MessageType>, escapeFn?: typeof escaped); then(transport: ConstructorType<[string]>): this; template(value: string): void; /** * Register raw unsafe variable */ raw(src: MessageType): string; /** * Register variable what will be safe in HTML by default * or with your custom escape logic */ escaped(src: MessageType): string; catch(rejected: ConstructorType<[unknown]>): this; destroy(): this; } /** * String with html escaped */ declare function escaped(base: string): string; /** * By receiving a message with a key and value, collects a table * of all previously received messages in the form of a structure * https://silentium-lab.github.io/silentium-components/#/structures/hash-table */ declare function HashTable($base: MessageType<[string, unknown]>): silentium.MessageImpl; type UnWrap = T extends MessageType ? U : T; /** * Returns record Of data from record Of sources * https://silentium-lab.github.io/silentium-components/#/structures/record */ declare function Record$1(record: Record$1): silentium.MessageImpl>>; /** * First match Of regexp * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched */ declare function RegexpMatch(patternSrc: MaybeMessage, valueSrc: MaybeMessage, flagsSrc?: MaybeMessage): silentium.MessageImpl; /** * Boolean source what checks what string matches pattern * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched */ declare function RegexpMatched(patternSrc: MaybeMessage, valueSrc: MaybeMessage, flagsSrc?: MaybeMessage): silentium.MessageImpl; /** * Returns string replaced by regular expression pattern * https://silentium-lab.github.io/silentium-components/#/system/regexp-replaced */ declare function RegexpReplaced(valueSrc: MaybeMessage, patternSrc: MaybeMessage, replaceValueSrc: MaybeMessage, flagsSrc?: MaybeMessage): silentium.MessageImpl; /** * Ability to mutate some object, helpful when integrate to procedure systems * https://silentium-lab.github.io/silentium-components/#/system/set */ declare function Set>(baseSrc: MessageType, keySrc: MessageType, valueSrc: MessageType): silentium.MessageImpl; export { And, Bool, Branch, BranchLazy, Concatenated, Constant, Deadline, Deferred, Detached, Dirty, First, FromJson, Getter, HashTable, Loading, Lock, Memo, MergeAccumulation, Not, OnlyChanged, Or, Part, Path, Polling, Record$1 as Record, RecordTruncated, RegexpMatch, RegexpMatched, RegexpReplaced, Router, Set, StateRecord, Switch, Task, Template, TemplateImpl, Tick, ToJson, Transformed, TransformedList, escaped }; export type { Route };