import { SfCommand } from '@salesforce/sf-plugins-core';
export interface RefreshSandboxConfig {
    connectedApps?: string[];
}
export interface ConnectedApp {
    fullName: string;
    fileName: string;
    type: string;
    consumerKey?: string;
    consumerSecret?: string;
}
export declare function generateConnectedAppPackageXml(connectedApps: ConnectedApp[]): any;
export declare function generateEmptyPackageXml(): any;
export declare function createConnectedAppManifest(connectedApps: ConnectedApp[], command: SfCommand<any>): Promise<{
    manifestPath: string;
    tmpDir: string;
}>;
export declare function withConnectedAppIgnoreHandling<T>(operationFn: (backupInfo: {
    forceignorePath: string;
    originalContent: string;
    tempBackupPath: string;
} | null) => Promise<T>, command: SfCommand<any>): Promise<T>;
export declare function createDestructiveChangesManifest(connectedApps: ConnectedApp[], command: SfCommand<any>): Promise<{
    destructiveChangesPath: string;
    packageXmlPath: string;
    tmpDir: string;
}>;
export declare function deleteConnectedApps(orgUsername: string | undefined, connectedApps: ConnectedApp[], command: SfCommand<any>, saveProjectPath: string): Promise<void>;
export declare function disableConnectedAppIgnore(command: SfCommand<any>): Promise<{
    forceignorePath: string;
    originalContent: string;
    tempBackupPath: string;
} | null>;
export declare function restoreConnectedAppIgnore(backupInfo: {
    forceignorePath: string;
    originalContent: string;
    tempBackupPath: string;
} | null, command: SfCommand<any>): Promise<void>;
export declare function retrieveConnectedApps(orgUsername: string | undefined, connectedApps: ConnectedApp[], command: SfCommand<any>, saveProjectPath: string): Promise<void>;
export declare function deployConnectedApps(orgUsername: string | undefined, connectedApps: ConnectedApp[], command: SfCommand<any>, saveProjectPath: string): Promise<void>;
export declare function toConnectedAppFormat(apps: Array<{
    fullName: string;
    fileName?: string;
    filePath?: string;
}>): ConnectedApp[];
export declare function validateConnectedApps(requestedApps: string[], availableApps: string[], command: SfCommand<any>, context: 'org' | 'project'): {
    missingApps: string[];
    validApps: string[];
};
export declare function validateConnectedAppParams(orgUsername: string | undefined, connectedApps: Array<any>): void;
export declare function promptForConnectedAppSelection<T extends {
    fullName: string;
}>(connectedApps: T[], initialSelection: string[] | undefined, promptMessage: string): Promise<T[]>;
export declare function findConnectedAppFile(appName: string, command: SfCommand<any>, saveProjectPath: string): Promise<string | null>;
export declare function selectConnectedAppsForProcessing<T extends {
    fullName: string;
}>(connectedApps: T[], initialSelection: string[] | undefined, processAll: boolean, nameFilter: string | undefined, promptMessage: string, command: SfCommand<any>): Promise<T[]>;
export declare function withConnectedAppValidation(orgUsername: string | undefined, connectedApps: ConnectedApp[], command: SfCommand<any>, operationName: string, operationFn: () => Promise<void>): Promise<void>;
export declare function performConnectedAppOperationWithManifest(orgUsername: string, connectedApps: ConnectedApp[], command: SfCommand<any>, operationName: 'retrieve' | 'deploy', commandFn: (manifestPath: string, orgUsername: string, command: SfCommand<any>) => Promise<void>): Promise<void>;
export declare function createConnectedAppSuccessResponse(message: string, processedApps: string[], additionalData?: Record<string, any>): {
    success: true;
    message: string;
    connectedAppsProcessed: string[];
} & Record<string, any>;
export declare function handleConnectedAppError(error: any, command: SfCommand<any>): {
    success: false;
    error: string;
};
