/**
 * GitDocumentDB
 * Copyright (c) Hidekazu Kubota
 *
 * This source code is licensed under the Mozilla Public License Version 2.0
 * found in the LICENSE file in the root directory of this source tree.
 */
import { Logger } from 'tslog';
import { RemoteOptions } from '../types';
/**
 * @public
 */
export declare const type = "remote";
/**
 * @public
 */
export declare const name = "isomorphic-git";
/**
 * Create credential options
 *
 * @throws {@link InvalidAuthenticationTypeError}
 *
 * @throws # Error from createCredentialForGitHub
 * @throws - {@link InvalidURLFormatError}
 * @throws - {@link InvalidRepositoryURLError}
 *
 * @internal
 */
export declare function createCredentialCallback(options: RemoteOptions): (() => {
    username: string | undefined;
}) | undefined;
/**
 * Clone
 *
 * @throws {@link InvalidURLFormatError}
 * @throws {@link NetworkError}
 * @throws {@link HTTPError401AuthorizationRequired}
 * @throws {@link HTTPError404NotFound}
 * @throws {@link CannotConnectError}
 *
 * @throws # Errors from createCredentialForGitHub
 * @throws - {@link HttpProtocolRequiredError}
 * @throws - {@link InvalidRepositoryURLError}
 *
 * @throws # Errors from createCredential
 * @throws - {@link InvalidAuthenticationTypeError}
 *
 * @internal
 */
export declare function clone(workingDir: string, remoteOptions: RemoteOptions, remoteName?: string, logger?: Logger): Promise<void>;
/**
 * Check connection by FETCH
 *
 * @throws {@link InvalidGitRemoteError}
 * @throws {@link InvalidURLFormatError}
 * @throws {@link NetworkError}
 * @throws {@link HTTPError401AuthorizationRequired}
 * @throws {@link HTTPError404NotFound}
 * @throws {@link CannotConnectError}
 *
 * @throws # Errors from createCredentialForGitHub
 * @throws - {@link HttpProtocolRequiredError}
 * @throws - {@link InvalidRepositoryURLError}
 *
 * @throws # Errors from createCredential
 * @throws - {@link InvalidAuthenticationTypeError}
 *
 * @internal
 */
export declare function checkFetch(workingDir: string, remoteOptions: RemoteOptions, remoteName?: string, logger?: Logger): Promise<boolean>;
/**
 * git fetch
 *
 * @throws {@link InvalidGitRemoteError}
 * @throws {@link InvalidURLFormatError}
 * @throws {@link NetworkError}
 * @throws {@link HTTPError401AuthorizationRequired}
 * @throws {@link HTTPError404NotFound}
 * @throws {@link CannotConnectError}
 *
 * @throws # Errors from createCredentialForGitHub
 * @throws - {@link HttpProtocolRequiredError}
 * @throws - {@link InvalidRepositoryURLError}
 *
 * @throws # Errors from createCredential
 * @throws - {@link InvalidAuthenticationTypeError}
 *
 * @internal
 */
export declare function fetch(workingDir: string, remoteOptions: RemoteOptions, remoteName?: string, localBranchName?: string, remoteBranchName?: string, logger?: Logger): Promise<void>;
/**
 * git push
 *
 * @throws {@link InvalidGitRemoteError}
 * @throws {@link UnfetchedCommitExistsError}
 * @throws {@link InvalidURLFormatError}
 * @throws {@link NetworkError}
 * @throws {@link HTTPError401AuthorizationRequired}
 * @throws {@link HTTPError404NotFound}
 * @throws {@link HTTPError403Forbidden}
 * @throws {@link CannotConnectError}
 *
 * @throws # Errors from createCredentialForGitHub
 * @throws - {@link InvalidURLFormatError}
 * @throws - {@link InvalidRepositoryURLError}
 *
 * @throws # Errors from createCredential
 * @throws - {@link InvalidAuthenticationTypeError}
 *
 * @internal
 */
export declare function push(workingDir: string, remoteOptions: RemoteOptions, remoteName?: string, localBranchName?: string, remoteBranchName?: string, logger?: Logger): Promise<void>;
//# sourceMappingURL=remote-isomorphic-git.d.ts.map