export interface PublishOwner {
    login: string;
    kind: 'user' | 'org';
    description: string;
}
export interface PublishToGitHubModalProps {
    open: boolean;
    onOpenChange(open: boolean): void;
    /** Owners returned from /api/cloud-providers/github/orgs. The first entry
     *  is the authenticated user's personal account. */
    owners: PublishOwner[];
    /** Default repository name — typically the application slug. */
    defaultRepoName: string;
    /** Optional initial owner login (e.g. last-used preference). Falls back to
     *  the first entry in `owners`. */
    initialOwnerLogin?: string;
    /** Called when the user clicks Publish. Throws to surface an error to
     *  the user without closing the modal. */
    onSubmit(input: {
        ownerLogin: string;
        repoName: string;
        visibility: 'public' | 'private';
    }): Promise<void>;
}
export declare function PublishToGitHubModal({ open, onOpenChange, owners, defaultRepoName, initialOwnerLogin, onSubmit, }: PublishToGitHubModalProps): import("react/jsx-runtime").JSX.Element;
/**
 * PublishToGitHubForm — shell-less body of the publish flow. Rendered
 * either inside the modal above or inline as a subpanel of DeployPanel.
 * All the form state + validation + submit handling lives here so the
 * two surfaces stay pixel-identical without duplicating logic.
 */
export interface PublishToGitHubFormProps {
    owners: PublishOwner[];
    defaultRepoName: string;
    initialOwnerLogin?: string;
    onSubmit(input: {
        ownerLogin: string;
        repoName: string;
        visibility: 'public' | 'private';
    }): Promise<void>;
    onCancel(): void;
    /**
     * Controls chrome (padding, button layout). `dialog` matches the
     * legacy Dialog footer with ghost+primary side by side; `subpanel`
     * is denser for the popover so the whole form fits without scroll.
     */
    variant?: 'dialog' | 'subpanel';
}
export declare function PublishToGitHubForm({ owners, defaultRepoName, initialOwnerLogin, onSubmit, onCancel, variant, }: PublishToGitHubFormProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=publish-to-github-modal.d.ts.map