import ComponentObjects from '../scope/component-objects';
import { BitId, BitIds } from '../bit-id';
import { Network } from '../scope/network/network';
import Component from '../consumer/component/consumer-component';
import { ListScopeResult } from '../consumer/component/components-list';
import { SSHConnectionStrategyName } from '../scope/network/ssh/ssh';
import DependencyGraph from '../scope/graph/scope-graph';
import { ComponentLogs } from '../scope/models/model-component';
export default class Remote {
    primary: boolean;
    host: string;
    name: string;
    constructor(host: string, name?: string, primary?: boolean);
    connect(strategiesNames?: SSHConnectionStrategyName[]): Promise<Network>;
    toPlainObject(): {
        host: string;
        name: string;
    };
    scope(): Promise<{
        name: string;
    }>;
    list(namespacesUsingWildcards?: string, strategiesNames?: SSHConnectionStrategyName[]): Promise<ListScopeResult[]>;
    search(query: string, reindex: boolean): Promise<any>;
    show(bitId: BitId, strategiesNames?: SSHConnectionStrategyName[]): Promise<Component | null | undefined>;
    graph(bitId?: BitId, strategiesNames?: SSHConnectionStrategyName[]): Promise<DependencyGraph>;
    fetch(bitIds: BitIds, withoutDeps: boolean, context?: Record<string, any>, strategiesNames?: SSHConnectionStrategyName[]): Promise<ComponentObjects[]>;
    latestVersions(bitIds: BitId[], strategiesNames?: SSHConnectionStrategyName[]): Promise<ComponentObjects[]>;
    validate(): void;
    push(componentObjects: ComponentObjects): Promise<ComponentObjects>;
    pushMany(components: ComponentObjects[], context: Record<string, any> | null | undefined): Promise<string[]>;
    deleteMany(ids: string[], force: boolean, context: Record<string, any> | null | undefined): Promise<Record<string, any>[]>;
    deprecateMany(ids: string[], context: Record<string, any> | null | undefined): Promise<Record<string, any>[]>;
    undeprecateMany(ids: string[], context: Record<string, any> | null | undefined): Promise<Record<string, any>[]>;
    log(id: BitId): Promise<ComponentLogs>;
    static load(name: string, host: string): Remote;
}
