import { Logger } from '@n8n/backend-common';
import { InstanceSettingsLoaderConfig } from '@n8n/config';
import type { UserLike } from '../../events/maps/relay.event-map';
import { EventService } from '../../events/event.service';
import { Push } from '../../push';
import { InstanceSettings } from 'n8n-core';
import { type PublicInstalledPackage } from 'n8n-workflow';
import { CommunityNodeTypesService } from './community-node-types.service';
import { CommunityPackagesConfig } from './community-packages.config';
import { CommunityPackagesService } from './community-packages.service';
import type { InstalledPackages } from './installed-packages.entity';
export type CommunityPackageInstallPresentation = 'ui' | 'publicApi';
export type MissingInstalledPackageBehavior = 'badRequest' | 'notFound';
export declare class CommunityPackagesLifecycleService {
    private readonly logger;
    private readonly push;
    private readonly communityPackagesService;
    private readonly eventService;
    private readonly communityNodeTypesService;
    private readonly instanceSettings;
    private readonly communityPackagesConfig;
    private readonly instanceSettingsLoaderConfig;
    constructor(logger: Logger, push: Push, communityPackagesService: CommunityPackagesService, eventService: EventService, communityNodeTypesService: CommunityNodeTypesService, instanceSettings: InstanceSettings, communityPackagesConfig: CommunityPackagesConfig, instanceSettingsLoaderConfig: InstanceSettingsLoaderConfig);
    private assertNotManagedByEnv;
    listInstalledPackages(): Promise<PublicInstalledPackage[] | InstalledPackages[]>;
    install(args: {
        name: string | undefined;
        version?: string;
        verify?: boolean;
    }, user: UserLike, presentation: CommunityPackageInstallPresentation): Promise<InstalledPackages>;
    update(args: {
        name: string | undefined;
        version?: string;
        checksum?: string;
        verify?: boolean;
    }, user: UserLike, whenMissing: MissingInstalledPackageBehavior): Promise<InstalledPackages>;
    uninstall(packageName: string | undefined, user: UserLike, whenMissing: MissingInstalledPackageBehavior): Promise<void>;
}
