import type { CloudDeploymentProvider } from '../../../../../../packages/core/src/domain/generated/output.js';
import type { GitStatusDto } from '../../../hooks/use-git-status.js';
import type { SmartDeployState } from '../../../hooks/use-smart-deploy-state.js';
import type { CloudDeployActionApi } from '../../../hooks/use-cloud-deploy-action.js';
import { type ProviderListEntry } from './provider-list.js';
import { type PublishOwner } from './publish-to-github-modal.js';
export interface DeployPanelProps {
    state: SmartDeployState;
    gitStatus: GitStatusDto | null;
    cloudDeploy: CloudDeployActionApi;
    /** Stable display name of the connected cloud provider (e.g. "Cloudflare Pages"). */
    cloudProviderName: string | null;
    /** Time-ago string for the last successful deploy ("2 minutes ago"). */
    lastDeployedAgo: string | null;
    /** Full list of providers for the inline switcher (all 5 including
     *  the "Coming soon" stubs). Drives the list inside the "Live
     *  website" section so the user can see + pick any provider without
     *  needing a nested popover. */
    providers: readonly ProviderListEntry[];
    providersLoading?: boolean;
    providersError?: string | null;
    /** GitHub owner list for the inline publish subpanel. Null when the
     *  owners request hasn't completed yet — the Set-up-code-backup row
     *  still clicks through to `onSetUpCodeStorage` (legacy modal) as a
     *  graceful fallback in that window. */
    publishOwners?: readonly PublishOwner[] | null;
    /** Default repository name pre-filled into the inline form (slug). */
    publishDefaultRepoName?: string;
    /** Called when the inline form is submitted. Parent does the HTTP
     *  call + refreshes git status + opens the logs drawer. Throws to
     *  surface a validation error inline without closing the subpanel. */
    onPublishSubmit?(input: {
        ownerLogin: string;
        repoName: string;
        visibility: 'public' | 'private';
    }): Promise<void>;
    /** Click handlers — fire the corresponding hook actions. */
    onSaveChanges(): void;
    onPublishToWeb(): void;
    onRedeploy(): void;
    /** Legacy fallback for setting up code backup when the inline form
     *  isn't available (publishOwners still loading). Still wired so the
     *  user never hits a dead button during the orgs fetch. */
    onSetUpCodeStorage(): void;
    /** Called when the user clicks a connected provider row to switch to it.
     *  Should persist the selection and immediately run a deploy. */
    onSelectProvider(provider: CloudDeploymentProvider): void;
    /** Called when the user clicks an unconnected provider row — opens the
     *  connect-token modal. */
    onConnectProvider(provider: CloudDeploymentProvider): void;
    /** Called when the user clicks the pencil on a connected row. */
    onEditConnection(provider: CloudDeploymentProvider): void;
    onOpenLogs(): void;
    onOpenInGitHub(): void;
}
export declare function DeployPanel({ state, gitStatus, cloudDeploy, cloudProviderName, lastDeployedAgo, providers, providersLoading, providersError, publishOwners, publishDefaultRepoName, onPublishSubmit, onSaveChanges, onPublishToWeb, onRedeploy, onSetUpCodeStorage, onSelectProvider, onConnectProvider, onEditConnection, onOpenLogs, onOpenInGitHub, }: DeployPanelProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=deploy-panel.d.ts.map