export default Client;
export type ControllerOptions = import('./index').ControllerOptions;
export type Multiaddr = import('@multiformats/multiaddr').Multiaddr;
/**
 * @typedef {import('./index').ControllerOptions} ControllerOptions
 * @typedef {import('@multiformats/multiaddr').Multiaddr} Multiaddr
 */
/**
 * Controller for remote nodes
 *
 * @class
 */
declare class Client {
    /**
     * @class
     * @param {string} baseUrl
     * @param {import('./types').RemoteState} remoteState
     * @param {ControllerOptions} options
     */
    constructor(baseUrl: string, remoteState: import('./types').RemoteState, options: ControllerOptions);
    opts: import("./types").ControllerOptions;
    baseUrl: string;
    id: string;
    path: string;
    initialized: boolean;
    started: boolean;
    disposable: boolean;
    clean: boolean;
    api: any;
    /** @type {import('./types').Subprocess | null} */
    subprocess: import('./types').Subprocess | null;
    /** @type {Multiaddr} */
    apiAddr: Multiaddr;
    /** @type {import('./types').PeerData | null} */
    _peerId: import('./types').PeerData | null;
    get peer(): import("./types").PeerData;
    /**
     * @private
     * @param {string} addr
     */
    private _setApi;
    /**
     * @private
     * @param {string} addr
     */
    private _setGateway;
    gatewayAddr: import("@multiformats/multiaddr").Multiaddr | undefined;
    /**
     * @private
     * @param {string} addr
     */
    private _setGrpc;
    grpcAddr: import("@multiformats/multiaddr").Multiaddr | undefined;
    /**
     * @private
     */
    private _createApi;
    /**
     * Initialize a repo.
     *
     * @param {import('./types').InitOptions} [initOptions]
     * @returns {Promise<Client>}
     */
    init(initOptions?: import("./types").InitOptions | undefined): Promise<Client>;
    /**
     * Delete the repo that was being used.
     * If the node was marked as `disposable` this will be called
     * automatically when the process is exited.
     *
     * @returns {Promise<Client>}
     */
    cleanup(): Promise<Client>;
    /**
     * Start the daemon.
     *
     * @returns {Promise<Client>}
     */
    start(): Promise<Client>;
    /**
     * Stop the daemon
     */
    stop(): Promise<Client>;
    /**
     * Get the pid of the `ipfs daemon` process.
     *
     * @returns {Promise<number>}
     */
    pid(): Promise<number>;
    /**
     * Get the version of ipfs
     *
     * @returns {Promise<string>}
     */
    version(): Promise<string>;
}
//# sourceMappingURL=ipfsd-client.d.ts.map