/**
 * 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 gitDDB source tree.
 */
import { GitDDBInterface } from '../types_gitddb';
import { SyncResultNop, SyncResultPush, TaskMetadata } from '../types';
import { SyncInterface } from '../types_sync';
/**
 * Push and get changes
 *
 * @throws # Errors from 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 - {@link CannotConnectError}
 * @throws - {@link HttpProtocolRequiredError}
 * @throws - {@link InvalidRepositoryURLError}
 * @throws - {@link InvalidSSHKeyPathError}
 * @throws - {@link InvalidAuthenticationTypeError}
 *
 * @throws # Errors from getChanges
 * @throws - {@link Err.InvalidJsonObjectError}
 *
 * @internal
 */
export declare function pushWorker(gitDDB: GitDDBInterface, sync: SyncInterface, taskMetadata: TaskMetadata, skipStartEvent?: boolean, afterMerge?: boolean): Promise<SyncResultPush | SyncResultNop>;
//# sourceMappingURL=push_worker.d.ts.map