import { EventEmitter } from "../../../stencil-public-runtime";
import { DatabaseService, FireEnjinFetchEvent, FireEnjinSubmitEvent, FireEnjinTriggerInput } from "@fireenjin/sdk";
import { Flow, Step, StepInput, Template } from "../../../sdk";
import { FlowTest } from "../../../interfaces";
export declare class AppFlow {
  codeEditorFieldName: string;
  formEl: HTMLFireenjinFormElement;
  stepFormEl: HTMLFireenjinFormElement;
  pathFormEl: HTMLFireenjinFormElement;
  modalEl: HTMLIonModalElement;
  stepsSelectEl: HTMLFireenjinSelectElement;
  stepInput: StepInput;
  successTemplateSelectEl: any;
  errorTemplateSelectEl: any;
  fireenjinFetch: EventEmitter<FireEnjinFetchEvent>;
  fireenjinSubmit: EventEmitter<FireEnjinSubmitEvent>;
  fireenjinTrigger: EventEmitter<FireEnjinTriggerInput>;
  floodteamCloseModal: EventEmitter;
  flowId?: string;
  renderId?: string;
  stepId?: string;
  db: DatabaseService;
  flowTemplates?: Template[];
  reNamePathString: string;
  flow: Flow;
  step: Step;
  steps: Step[];
  showCodeInputForStep: {
    [stepId: string]: boolean;
  };
  tests: FlowTest[];
  testId: string;
  onSubmit(event: any): void;
  onTrigger(event: any): void;
  onSuccess({ detail: { endpoint, data } }: {
    detail: {
      endpoint: any;
      data: any;
    };
  }): Promise<void>;
  onReorder(event: any): Promise<void>;
  openTestsModal(): Promise<void>;
  openFlowPreview(): Promise<void>;
  openStepModal(step?: Step, addStep?: boolean): Promise<void>;
  fetchSteps(): Promise<void>;
  onChange({ target, detail }: {
    target: any;
    detail: any;
  }): void;
  getData(): Promise<void>;
  getTests(): void;
  beforeSubmit(data: any): Flow;
  disconnectedCallback(): void;
  /**
   * Simple object check.
   * @param item
   * @returns {boolean}
   */
  isObject(item: any): boolean;
  openCodeEditor(event: any, name: string, value?: any, pageTitle?: string, language?: string, outputObject?: boolean): Promise<HTMLIonModalElement>;
  reNamePath(event: any, pathName: any): void;
  addToPath(path: any, steps: any): void;
  removeFromPath(pathName: any, index: any): void;
  setDefaultPath(event: any, pathName: any): void;
  componentDidLoad(): void;
  render(): any[];
}
