import { EventEmitter } from "../../../stencil-public-runtime";
import { DatabaseService, FireEnjinFetchEvent, FireEnjinSubmitEvent, FireEnjinTriggerInput } from "@fireenjin/sdk";
import { Flow, Step, StepInput } from "../../../sdk";
export declare class AppFlow {
  formEl: HTMLFireenjinFormElement;
  stepFormEl: HTMLFireenjinFormElement;
  modalEl: HTMLIonModalElement;
  pathNameInputEl: HTMLFireenjinInputElement;
  stepsSelectEl: HTMLFireenjinSelectElement;
  stepInput: StepInput;
  showCode: boolean;
  fireenjinFetch: EventEmitter<FireEnjinFetchEvent>;
  fireenjinSubmit: EventEmitter<FireEnjinSubmitEvent>;
  fireenjinTrigger: EventEmitter<FireEnjinTriggerInput>;
  flowId?: string;
  stepId?: string;
  db: DatabaseService;
  flow: Flow;
  step: Step;
  steps: Step[];
  showCodeInputForStep: {
    [stepId: string]: boolean;
  };
  toggleSteps: boolean;
  toggleFields: boolean;
  field: string;
  beforeEl: any;
  afterEl: any;
  fieldEl: any;
  onSubmit(event: any): void;
  onSuccess(event: any): void;
  onReorder(event: any): Promise<void>;
  openUserSearch(): Promise<void>;
  fetchSteps(): Promise<void>;
  getData(): Promise<void>;
  disconnectedCallback(): void;
  /**
   * Simple object check.
   * @param item
   * @returns {boolean}
   */
  isObject(item: any): boolean;
  /**
   * Deep merge two objects.
   * @param target
   * @param ...sources
   */
  mergeDeep(target: any, ...sources: any[]): any;
  openCodeEditor(name: string, value?: any): Promise<HTMLIonModalElement>;
  showSteps(): void;
  showFields(): void;
  stepSelect(step: any): void;
  fieldSelect(field: any): void;
  addFieldToStep(field: any): void;
  addToPath(path: any, steps: any): void;
  componentDidLoad(): void;
  render(): any[];
}
