import { BodyInit } from 'node-fetch'; import { IApplication } from './IApplication'; import Form from '../Model/Form/Form'; import { ApplicationInstall, IApplicationSettings } from '../Database/ApplicationInstall'; import ApplicationTypeEnum from './ApplicationTypeEnum'; import AuthorizationTypeEnum from '../../Authorization/AuthorizationTypeEnum'; import RequestDto from '../../Transport/Curl/RequestDto'; import { IFieldArray } from '../Model/Form/Field'; import ProcessDto from '../../Utils/ProcessDto'; export declare const FORM = "form"; export declare const AUTHORIZATION_SETTINGS = "authorization_settings"; export interface IApplicationArray { name: string; logo: string | null; authorization_type: AuthorizationTypeEnum; application_type: ApplicationTypeEnum; key: string; description: string; } export default abstract class AApplication implements IApplication { protected _logoFilename: string; abstract getAuthorizationType(): AuthorizationTypeEnum; abstract getPublicName(): string; abstract getName(): string; abstract getDescription(): string; abstract getSettingsForm(): Form; getApplicationType: () => ApplicationTypeEnum; abstract isAuthorized(applicationInstall: ApplicationInstall): boolean; abstract getRequestDto(dto: ProcessDto, applicationInstall: ApplicationInstall, method: string, url?: string, data?: BodyInit): RequestDto | Promise; getLogo(): string | null; getApplicationForm(applicationInstall: ApplicationInstall): IFieldArray[]; setApplicationSettings(applicationInstall: ApplicationInstall, settings: IApplicationSettings): Promise; getUri: (url?: string) => URL; toArray(): IApplicationArray; protected _customFormReplace(form: Form, applicationInstall: ApplicationInstall): void; }