import { Expression } from "../expression/expression"; import { Optional } from "../../optional/optional"; export declare type ExpressionOrString = string | Expression; export declare type SyncExpressionChain = ExpressionOrString[]; export declare type AsyncExpressionChain = [true, ExpressionOrString[]]; export declare type ExpressionChain = string | SyncExpressionChain | AsyncExpressionChain; export declare type NullableExpressionChain = Optional; export interface ExpressionChainDict { [key: string]: ExpressionChain | undefined; } /** * Returns true if the given ExpressionChain is a pure string * @param {NullableExpressionChain} expressionChain * @returns {expressionChain is string} */ export declare function isPureStringExpressionChain(expressionChain: NullableExpressionChain): expressionChain is string; /** * Returns true if the given ExpressionChain is asynchronous * @param {NullableExpressionChain} expressionChain * @returns {expressionChain is AsyncExpressionChain} */ export declare function isAsyncExpressionChain(expressionChain: NullableExpressionChain): expressionChain is AsyncExpressionChain; /** * Returns true if the given ExpressionChain is synchronous * @param {NullableExpressionChain} expressionChain * @returns {expressionChain is SyncExpressionChain} */ export declare function isSyncExpressionChain(expressionChain: NullableExpressionChain): expressionChain is SyncExpressionChain; /** * Returns true if the given ExpressionChain is a string or synchronous * @param {NullableExpressionChain} expressionChain * @returns {expressionChain is string|SyncExpressionChain} */ export declare function isStringOrSyncExpressionChain(expressionChain: NullableExpressionChain): expressionChain is string | SyncExpressionChain; /** * Takes Expressions or strings for an ExpressionChain * @param {ExpressionChain} expressionChain * @returns {ExpressionOrString[]} */ export declare function takeExpressionsOrStrings(expressionChain: ExpressionChain): ExpressionOrString[]; /** * Returns true if the given ExpressionChain contains at least one Expression * @param {ExpressionChain} expressionChain * @returns {boolean} */ export declare function expressionChainContainsExpression(expressionChain: ExpressionChain): boolean; /** * Returns true if the given item is a ExpressionChain * @param {NullableExpressionChain} item * @returns {boolean} */ export declare function isExpressionChain(item: NullableExpressionChain | ExpressionChainDict): item is ExpressionChain;