import { type MerchantConfig } from "#config/index"; import { EnvironmentBackend } from "#environments/backend"; import type { Environment } from "#environments/model"; import { type PermissionMode } from "#app/permission-mode"; import type { EnvironmentStatus } from "#environments/model"; import { type MagentoInspector, type MagentoSnapshot } from "#magento/index"; import { ChangeTracker } from "#workflows/change-tracker"; import type { TestingSnapshot } from "#testing/model"; import type { Magerun2Capability } from "#features/magerun2/index"; import { NativeProbeLog } from "#app/native-operations"; export type SessionState = { config: MerchantConfig; configPath?: string; selected: { name: string; environment: Environment; }; backend: EnvironmentBackend; nativeLog: NativeProbeLog; environmentStatus: EnvironmentStatus; permissionMode: PermissionMode; magento: MagentoSnapshot; testing?: TestingSnapshot; magerun2?: Magerun2Capability; }; export declare class MerchantDuoRuntime { #private; readonly inspector: MagentoInspector; readonly injected: Set; readonly changes: ChangeTracker; constructor(inspector?: MagentoInspector); boot(cwd: string): Promise; resetInjection(): void; injectionKey(skillId: string, theme: string): string; changeTheme(cwd: string, activeTheme: string): Promise; setPermissionMode(mode: PermissionMode): SessionState; setTesting(snapshot: TestingSnapshot): void; setMagerun2(capability: Magerun2Capability): void; setEnvironmentStatus(status: EnvironmentStatus): SessionState; startEnvironment(cwd: string): Promise; refreshMagento(cwd: string): Promise; stopEnvironment(cwd: string): Promise; }