///
import type { GlobbyFilterFunction } from 'globby';
import * as fs from 'node:fs';
import { App, AppConfig, ConfigType, FrontendProjectType } from './lib/apps/index.js';
import { RemoteAppCommand } from './remote-app-command.js';
type WatchFileEvent = 'change' | 'deleted' | 'new';
interface WatchingChange {
action: 'push' | 'remove';
appConfig: AppConfig;
configFile: string;
}
export declare abstract class PushAppCommand extends RemoteAppCommand {
frontendPath: string;
hasLoggedLocalPreviewUrl: boolean;
logWatchChanges: boolean;
onWatchChange?: (appConfig?: AppConfig, action?: string, result?: any) => void;
watchingChangeQueue: Map;
watchingFiles: Set;
watchingIgnoreFilter: GlobbyFilterFunction | null;
watchingTimer: NodeJS.Timeout | null;
watchListener: (eventType: fs.WatchEventType, filename: null | string) => Promise;
protected showFrontendMigrationError(): never;
buildFrontend(projectType?: FrontendProjectType): Promise;
chooseAppToPull(query?: any): Promise;
createAppStorefront(hasOtherStorefronts?: boolean, nonInteractive?: boolean): Promise;
deployAppFrontend(force?: boolean, log?: boolean): Promise;
deployFrontend(projectType: FrontendProjectType): Promise;
ensureAppExists(file?: string, shouldCreate?: boolean): Promise;
ensureLoggedIn(): Promise;
exec(command: string, cwd?: string, onOutput?: (string: string) => any | false): Promise;
execFrontend(command: string, onOutput?: (string: string) => any | false): Promise;
getAllAppStorefronts(params?: {
type?: string;
}): Promise;
getAllStorefronts(params?: {
app_id?: string;
theme_app_id?: string;
type?: string;
}): Promise;
getAppStorefront(params?: {
storefront_id?: string;
type?: string;
}): Promise;
getAppToPull(args: {
appId?: string;
targetPath?: string;
}, shouldChoose?: boolean): Promise;
getExistingApp(appId: string): Promise;
getFrontendDeploymentHash(): string | undefined;
getFrontendProjectType(required?: boolean): FrontendProjectType | null;
getStorefrontToPull(args?: {
appId?: string;
targetPath?: string;
}, flags?: {
env?: string;
'storefront-id'?: string;
'storefront-select'?: boolean;
}): Promise;
getStorefrontToPush(flags?: {
env?: string;
'storefront-id'?: string;
'storefront-select'?: boolean;
yes?: boolean;
}): Promise;
setStorefrontEnv(flags: {
env?: string;
'storefront-id'?: string;
'storefront-select'?: boolean;
}, defaultStorefront?: any): Promise;
handleWatchFileChange(configFile: string, configType: ConfigType, event: WatchFileEvent): Promise;
logAppFrontendUrl(): void;
logDashboardUrl(flags: {
[flag: string]: any;
}): void;
logStorefrontConnected(): void;
logStorefrontFrontendUrl(storefront?: any, branchId?: string): void;
pushFile(relativePath: string): Promise;
pushFilePath(relativePath: string, force?: boolean): Promise;
resolveAppPath(appId?: string, targetPath?: string): string;
runWatchChangeQueue(): Promise;
saveCurrentStorefront(): void;
logLocalPreviewUrl(): void;
setWatchingFiles(): Promise;
startProxyServer(port?: number): Promise;
updateFrontendDeployment(currentStore: string, projectType: FrontendProjectType, deploymentUrl: string, deploymentHash: string): Promise;
updateLocalProxy(proxyUrl: string | null, storefrontId?: string): Promise;
watchForChanges({ logChanges, onChange, syncAll, }?: {
logChanges?: boolean;
onChange?: (appConfig?: AppConfig, result?: any) => void;
syncAll?: boolean;
}): Promise;
wranglerDeployFrontend(_projectType: FrontendProjectType): Promise;
private confirmRemoveInstalledApp;
}
export {};