import { liquidDispatch, liquidDispatchSync, toLiquidPrimitive } from "./drop"; /** * The base class for objects wrapping undefined variables found in * Liquid templates. */ export declare abstract class Undefined { readonly name: string; readonly object?: unknown; readonly hint?: string | undefined; /** * Create a new `Undefined` object. * * @param name - The name of the undefined variable. * @param object - The target object which does not have a property * with the given name. * @param hint - Optionally override the default "undefined" message. */ constructor(name: string, object?: unknown, hint?: string | undefined); toString(): string; /** * Prompt the undefined type to throw an error. */ poke(): void; } /** * An {@link Undefined} type that throws an error whenever it appears * in a Liquid expression. */ export declare class StrictUndefined extends Undefined { static from(name: string): StrictUndefined; toString(): string; poke(): void; valueOf(): void; [Symbol.iterator](): Iterator; [toLiquidPrimitive](): void; [liquidDispatch](): Promise; [liquidDispatchSync](): void; get first(): void; get last(): void; get size(): void; } /** * An {@link Undefined} type that evaluates to an empty string or `0`, * and can be indexed and iterated over without error. */ export declare class LaxUndefined extends Undefined { static from(name: string): LaxUndefined; toString(): string; poke(): void; valueOf(): string; [liquidDispatch](): Promise; [liquidDispatchSync](): this; [Symbol.iterator](): Iterator; [Symbol.toPrimitive](hint: string): 0 | "" | null; get first(): this; get last(): this; get size(): this; } /** * An {@link Undefined} type that will evaluate to `false` in a boolean * expression and throw an error when iterated, output or when accessing * its properties. */ export declare class FalsyStrictUndefined extends Undefined { static from(name: string): FalsyStrictUndefined; toString(): string; poke(): void; valueOf(): void; [Symbol.iterator](): Iterator; [liquidDispatch](): Promise; [liquidDispatchSync](): void; get first(): void; get last(): void; get size(): void; }