import { TType, IParam } from '../param-types'; export interface ITokenizedParam { match: string; key: string; type: TType; value: any; isAutoParam: boolean; isKeyOnlyParam: boolean; options: string[]; } export declare abstract class ParamSerializer { abstract untransform(param: ITokenizedParam): ITokenizedParam; abstract detokenize(param: ITokenizedParam, serializationType: 'serialize' | 'value'): any[]; abstract unconvert(param: any[], type: TType): string[]; abstract stringify(param: any[]): string; abstract parse(text: string): Iterable; abstract convert(param: string[]): any[]; abstract tokenize(param: any[]): ITokenizedParam; abstract transform(param: ITokenizedParam): ITokenizedParam; /** * Generates an embed string */ abstract embed(text: string, params: IParam[]): string; /** * Extracts the embed string */ abstract extract(text: string, options?: { [key: string]: any; }): string; /** * Converts value to js */ abstract toJs(value: string, type: TType): any; /** * Converts value to string */ abstract toString(value: any, type?: TType): any; /** * Ranges of rows to lock */ abstract getLockRange(text: string): [number, number][]; /** * Returns a serialized param */ serialize(param: ITokenizedParam, serializationType?: 'serialize' | 'value'): string; /** * Params iterator */ params(text: string): Iterable; /** * Params iterator */ removeEmbed(text: string): string; }