UNPKG

bknd

Version:

Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.

123 lines (122 loc) 7.13 kB
import { type Static } from "../core/utils"; import { Module } from "../modules/Module"; import { flowsConfigSchema } from "./flows-schema"; export type AppFlowsSchema = Static<typeof flowsConfigSchema>; export type TAppFlowSchema = AppFlowsSchema["flows"][number]; export type TAppFlowTriggerSchema = TAppFlowSchema["trigger"]; export type { TAppFlowTaskSchema } from "./flows-schema"; export declare class AppFlows extends Module<typeof flowsConfigSchema> { private flows; getSchema(): import("@sinclair/typebox").TObject<{ basepath: import("@sinclair/typebox").TString; flows: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{ trigger: import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"manual" | "event" | "http">; config: import("@sinclair/typebox").TObject<{ mode: import("@sinclair/typebox").TUnsafe<"sync" | "async">; }> | import("@sinclair/typebox").TObject<{ mode: import("@sinclair/typebox").TUnsafe<"sync" | "async">; event: import("@sinclair/typebox").TString; }> | import("@sinclair/typebox").TObject<{ mode: import("@sinclair/typebox").TUnsafe<"sync" | "async">; path: import("@sinclair/typebox").TString; method: import("@sinclair/typebox").TUnsafe<"GET" | "POST" | "PATCH" | "PUT" | "DELETE">; response_type: import("@sinclair/typebox").TUnsafe<"json" | "text" | "html">; }>; }>[]>; tasks: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"log" | "fetch" | "render" | "subflow">; params: import("@sinclair/typebox").TObject<{ url: import("@sinclair/typebox").TString; method: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[{ title: string; } & import("@sinclair/typebox").TUnsafe<string>, import("@sinclair/typebox").TString]>, string>>; headers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[{ title: string; } & import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{ key: import("@sinclair/typebox").TString; value: import("@sinclair/typebox").TString; }>>, import("@sinclair/typebox").TString]>, { key: string; value: string; }[]>>; body: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[{ title: string; } & import("@sinclair/typebox").TString, import("@sinclair/typebox").TString]>, string>>; normal: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[{ title: string; } & import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString]>, number>>; }> | import("@sinclair/typebox").TObject<{ delay: import("@sinclair/typebox").TNumber; }> | import("@sinclair/typebox").TObject<{ render: import("@sinclair/typebox").TString; }> | import("@sinclair/typebox").TObject<{ flow: import("@sinclair/typebox").TAny; input: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[{ title: string; } & import("@sinclair/typebox").TAny, import("@sinclair/typebox").TString]>, any>>; loop: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>; }>; }>[]>>>; connections: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{ source: import("@sinclair/typebox").TString; target: import("@sinclair/typebox").TString; config: import("@sinclair/typebox").TObject<{ condition: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"success">; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"error">; }>, import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<"matches">; path: import("@sinclair/typebox").TString; value: import("@sinclair/typebox").TString; }>]>>; max_retries: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>; }>; }>>>; start_task: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>; responding_task: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>; }>>; }>; private getFlowInfo; build(): Promise<void>; toJSON(): (ReturnType<this["getSchema"]> & { params: []; })["static"] & { flows: { [x: string]: { trigger: { type: string; config: { mode: "sync" | "async"; }; }; tasks: { [k: string]: { type: string; params: { [x: string]: unknown; [x: number]: unknown; }; }; }; connections: { [k: string]: { source: string; target: string; config: { condition: { type: "success" | "error" | "matches"; path: string | undefined; value: any; } | undefined; max_retries?: number; }; }; }; start_task: string; responding_task: string | undefined; }; }; }; }