/// import { inspect, InspectOptions } from "util"; import V2 from "../V2"; /** * The Type of this Form. Currently only `form-push` is supported. */ export type FormFormTypes = "form-push"; export interface FormContext { /** * Fetch a FormInstance * * @param callback - Callback to handle processed record * * @returns Resolves to processed FormInstance */ fetch(callback?: (error: Error | null, item?: FormInstance) => any): Promise; /** * Provide a user-friendly representation */ toJSON(): any; [inspect.custom](_depth: any, options: InspectOptions): any; } export interface FormContextSolution { formType: FormFormTypes; } export declare class FormContextImpl implements FormContext { protected _version: V2; protected _solution: FormContextSolution; protected _uri: string; constructor(_version: V2, formType: FormFormTypes); fetch(callback?: (error: Error | null, item?: FormInstance) => any): Promise; /** * Provide a user-friendly representation * * @returns Object */ toJSON(): FormContextSolution; [inspect.custom](_depth: any, options: InspectOptions): string; } interface FormResource { form_type: FormFormTypes; forms: any; form_meta: any; url: string; } export declare class FormInstance { protected _version: V2; protected _solution: FormContextSolution; protected _context?: FormContext; constructor(_version: V2, payload: FormResource, formType?: FormFormTypes); formType: FormFormTypes; /** * Object that contains the available forms for this type. This available forms are given in the standard [JSON Schema](https://json-schema.org/) format */ forms: any; /** * Additional information for the available forms for this type. E.g. The separator string used for `binding` in a Factor push. */ formMeta: any; /** * The URL to access the forms for this type. */ url: string; private get _proxy(); /** * Fetch a FormInstance * * @param callback - Callback to handle processed record * * @returns Resolves to processed FormInstance */ fetch(callback?: (error: Error | null, item?: FormInstance) => any): Promise; /** * Provide a user-friendly representation * * @returns Object */ toJSON(): { formType: "form-push"; forms: any; formMeta: any; url: string; }; [inspect.custom](_depth: any, options: InspectOptions): string; } export interface FormSolution { } export interface FormListInstance { _version: V2; _solution: FormSolution; _uri: string; (formType: FormFormTypes): FormContext; get(formType: FormFormTypes): FormContext; /** * Provide a user-friendly representation */ toJSON(): any; [inspect.custom](_depth: any, options: InspectOptions): any; } export declare function FormListInstance(version: V2): FormListInstance; export {};