import { BaseConfig } from '@ionic/cli-framework'; import { PromptModule } from '@ionic/cli-framework-prompts'; import { IClient, IConfig, IIntegration, ILogger, IProject, ISession, IShell, InfoItem, IntegrationAddDetails, IntegrationName, ProjectIntegration, ProjectPersonalizationDetails } from '../../definitions'; import type { Integration as CapacitorIntegration } from './capacitor'; import type { Integration as CordovaIntegration } from './cordova'; import type { Integration as EnterpriseIntegration } from './enterprise'; export { INTEGRATION_NAMES } from '../../guards'; export interface IntegrationOptions { quiet?: boolean; } export interface IntegrationDeps { readonly prompt: PromptModule; readonly client: IClient; readonly session: ISession; readonly config: IConfig; readonly shell: IShell; readonly project: IProject; readonly log: ILogger; } export declare class IntegrationConfig extends BaseConfig { provideDefaults(c: Partial>): ProjectIntegration; } export declare abstract class BaseIntegration implements IIntegration { protected readonly e: IntegrationDeps; abstract readonly name: IntegrationName; abstract readonly summary: string; abstract readonly archiveUrl?: string; abstract readonly config: BaseConfig; constructor(e: IntegrationDeps); static createFromName(deps: IntegrationDeps, name: 'capacitor'): Promise; static createFromName(deps: IntegrationDeps, name: 'cordova'): Promise; static createFromName(deps: IntegrationDeps, name: 'enterprise'): Promise; static createFromName(deps: IntegrationDeps, name: IntegrationName): Promise; getInfo(): Promise; isAdded(): boolean; isEnabled(): boolean; enable(config?: ProjectIntegration): Promise; disable(): Promise; personalize(details: ProjectPersonalizationDetails): Promise; add(details: IntegrationAddDetails): Promise; }