import { ICompiledFunction, ICompiledFunctionConditionField, ICompiledFunctionField } from "../core/Compiler"; import { Context } from "./Context"; import { ErrorType, ForgeError, GetErrorArgs } from "./ForgeError"; import { ArgType, IArg, NativeFunction, UnwrapArgs } from "./NativeFunction"; import { Return, ReturnType, ReturnValue } from "./Return"; export interface IExtendedCompiledFunctionConditionField extends Omit { lhs: IExtendedCompiledFunctionField; rhs?: IExtendedCompiledFunctionField; } export interface IExtendedCompiledFunctionField extends Omit { functions: CompiledFunction[]; resolveArg?: (ctx: Context, arg: IArg, value: string, ref: Array) => unknown | Promise; } export interface IExtendedCompiledFunction extends Omit { fields: (IExtendedCompiledFunctionField | IExtendedCompiledFunctionConditionField)[] | null; } export interface IMultipleArgResolve { args: { [P in keyof X]: UnwrapArgs[X[P]]; }; return: Return; } export declare class CompiledFunction { private readonly raw; static readonly IdRegex: RegExp; static readonly URLRegex: RegExp; static readonly CDNIdRegex: RegExp; readonly data: IExtendedCompiledFunction; readonly fn: NativeFunction; constructor(raw: ICompiledFunction); displayField(i: number): string; get display(): string; /** * Resolves fields of a function. * @param ctx * @returns */ private resolveArgs; private resolveMultipleArgs; /** * Does not account for condition fields. * @param ctx * @param index * @returns */ private resolveUnhandledArg; private resolveCondition; private resolveCode; private argTypeRejection; private resolveNumber; private resolveBigInt; private resolveColor; private resolvePermission; private resolveString; private resolveTime; private resolveEnum; private resolveBoolean; private resolveMessage; private resolveChannel; private resolveGuild; private resolveJson; private resolveUser; private resolveGuildEmoji; private resolveForumTag; private resolveGuildSticker; private resolveAttachment; private resolveMember; private resolveReaction; private resolveURL; private resolveInvite; private resolveWebhook; private resolveRole; private resolveDate; private resolveArg; get hasFields(): boolean; error(type: T, ...args: GetErrorArgs): ForgeError; execute(ctx: Context): Promise; private isValidReturnType; private fail; static toResolveArgString(type: ArgType): "resolveGuild" | "resolveChannel" | "resolveUser" | "resolveRole" | "resolveInvite" | "resolveWebhook" | "resolveMessage" | "resolveURL" | "resolveString" | "resolveBigInt" | "resolveNumber" | "resolveDate" | "resolvePermission" | "resolveJson" | "resolveColor" | "resolveEnum" | "resolveForumTag" | "resolveGuildEmoji" | "resolveBoolean" | "resolveAttachment" | "resolveReaction" | "resolveGuildSticker" | "resolveTime" | "resolveMember"; getFunction(fieldIndex: number, ref: NativeFunction): CompiledFunction>[], boolean> | undefined; getFunctions(fieldIndex: number, ref: NativeFunction): CompiledFunction>[], boolean>[]; return(value: ReturnValue): Return; err(value: ReturnValue): Return; stop(): Return; break(): Return; continue(): Return; successJSON(value: ReturnValue): Return; successFormatted(value: ReturnValue): Return; unsafeSuccess(value?: ReturnValue): Return; success(value?: ReturnValue): Return; private toExecutableCode; } //# sourceMappingURL=CompiledFunction.d.ts.map