import { SimpleGit } from 'simple-git';
import { PublishOptions } from 'gh-pages';
import { SiteConfig } from './SiteConfig';
export type DeployOptions = {
    branch: string;
    message: string;
    repo: string;
    remote: string;
    user?: {
        name: string;
        email: string;
    };
};
/**
 * Handles the deployment of the generated site to GitHub Pages or other configured remote repositories.
 */
export declare class SiteDeployManager {
    rootPath: string;
    outputPath: string;
    siteConfig: SiteConfig;
    constructor(rootPath: string, outputPath: string);
    deploy(ciTokenVar: string | boolean): Promise<string | null>;
    /**
     * Helper function for deploy(). Returns the ghpages link where the repo will be hosted.
     */
    generateDepUrl(ciTokenVar: boolean | string, defaultDeployConfig: DeployOptions): Promise<string | null>;
    /**
     * Helper function for deploy(). Set the options needed to be used by ghpages.publish.
     */
    getDepOptions(ciTokenVar: boolean | string, defaultDeployConfig: DeployOptions, publish: (basePath: string, options: PublishOptions) => Promise<void>): Promise<DeployOptions>;
    /**
     * Extract repo slug from user-specified repo URL so that we can include the access token
     */
    static extractRepoSlug(repo: string, ciRepoSlug: string | undefined): string | undefined;
    /**
     * Helper function for deploy().
     */
    static getDepUrl(options: DeployOptions): Promise<string | null>;
    /**
     * Gets the deployed website's url, returning null if there was an error retrieving it.
     */
    static getDeploymentUrl(git: SimpleGit, options: DeployOptions): Promise<string | null>;
}
//# sourceMappingURL=SiteDeployManager.d.ts.map