import type { Session } from "neo4j-driver";
export type PublishSiteRefusal = "unsafe-slug" | "destination-occupied" | "symlink-in-source" | "zero-html" | "ambiguous-html";
export interface PublishSiteInput {
    accountId: string;
    accountDir: string;
    source: string;
    slug: string;
    siteName?: string;
    siteDescription?: string;
}
export interface PublishSiteDeps {
    getSession: () => Session;
}
export type PublishSiteResult = {
    ok: true;
    pathSlug: string;
    kind: "index" | "file";
    movedFiles: number;
    destination: string;
    aeo: {
        ok: true;
        indexPath: string;
        indexBytes: number;
    } | {
        ok: false;
        reason: string;
    };
} | {
    ok: false;
    refusal: PublishSiteRefusal;
    detail: Record<string, unknown>;
};
export declare function publishSite(input: PublishSiteInput, deps: PublishSiteDeps): Promise<PublishSiteResult>;
//# sourceMappingURL=publish-site.d.ts.map