export interface PluginInfo {
    alias: string;
    name: string;
    version: string;
    fullVersion: string;
}
export interface PluginSyncResult {
    synced: PluginInfo[];
    errors: Array<{
        alias: string;
        error: string;
    }>;
}
export declare class PluginSync {
    private projectPath;
    private botProjectPath;
    private bpModulesPath;
    private credentialsPromise;
    constructor(projectPath: string, botProjectPath: string);
    private getCredentials;
    /**
     * Parse agent.config.ts dependencies plugins into PluginInfo objects
     */
    private parsePlugins;
    /**
     * Check if a plugin is already installed with the correct version
     */
    private isPluginSynced;
    /**
     * Install a plugin using bp CLI
     */
    private installPlugin;
    /**
     * Rename plugin folder from bp_modules/{name} to bp_modules/plugin_{alias}
     */
    private renamePluginFolder;
    /**
     * Remove existing plugin folder
     */
    private removePluginFolder;
    /**
     * Sync all plugins
     */
    syncPlugins(): Promise<PluginSyncResult>;
}
//# sourceMappingURL=plugin-sync.d.ts.map