import type { APIEndpoint } from "./apiEndpointTypes";
import type { AIChatMessage, AiBriefTurn, JsonValue } from "./shared-contracts";
import type { AiPatchApplyResponse, AiPatchDryRunResponse, AiPatchRequest } from "./aiPatch";
import type { ApplyAiDesignerPageOpsRequest, ApplyAiDesignerPageOpsResponse, ApplyAiDesignerThemePatchRequest, ApplyAiDesignerThemePatchResponse, PageConvertJobEventsResponse, PageConvertJobGetResponse, PageConvertJobRunResponse, PageConvertJobsCreateRequest, PageConvertJobsCreateResponse, PageConvertJobsListResponse, PageConvertResponse, PlaygroundProposeRequest } from "./aiPlayground";
import type { AiGenerateSiteRequest, AiGenerateSiteResponse } from "./siteGeneration";
import type { AcknowledgeLaunchRequirementRequest, AcknowledgeLaunchRequirementResponse, AiSiteWizardIntakeTriageRequest, AiSiteWizardIntakeTriageResponse, AiSiteWizardSuggestGoalsRequest, AiSiteWizardSuggestGoalsResponse, AiSiteWizardTelemetryRequest, AiSiteWizardTelemetryResponse, GoLiveSiteResponse, OnboardingPreviewStatusResponse, OnboardingPreviewThemesResponse, PublicOnboardingAttemptPayload, PublicOnboardingAttemptProgressResponse, PublicOnboardingAttemptResponse, PublicOnboardingAttemptRunResponse, PublicOnboardingLogoUploadRequest, PublicOnboardingLogoUploadResponse, PublicOnboardingLogoUploadUrlRequest, PublicOnboardingLogoUploadUrlResponse, ResendOnboardingPreviewConfirmationResponse } from "./siteOnboarding";
export type AiAPIEndpointName = "aiAssistantChatSite" | "aiDesignerChat" | "aiContentUpdateChat" | "aiChat" | "aiDesignerThemeApply" | "aiDesignerPageOpsApply" | "aiCreateBriefChat" | "aiPatchDryRun" | "aiPatchApply" | "aiPlaygroundProposeMulti" | "aiPlaygroundProposeMultiGet" | "aiPlaygroundPageConvert" | "aiPlaygroundPageConvertJobsCreate" | "aiPlaygroundPageConvertJobsList" | "aiPlaygroundPageConvertJobGet" | "aiPlaygroundPageConvertJobRun" | "aiPlaygroundPageConvertJobEvents" | "aiGenerateSite" | "aiSiteWizardSuggestGoals" | "aiSiteWizardIntakeTriage" | "aiSiteWizardTelemetry";
export type LaunchReadinessAPIEndpointName = "getOnboardingPreviewStatus" | "listOnboardingPreviewThemes" | "acknowledgeLaunchRequirement" | "goLiveSite" | "resendOnboardingPreviewConfirmation" | "createPublicOnboardingAttempt" | "createPublicOnboardingLogoUploadUrl" | "uploadPublicOnboardingLogo" | "getPublicOnboardingAttempt" | "getPublicOnboardingAttemptProgress" | "updatePublicOnboardingAttempt" | "runPublicOnboardingAttempt";
/**
 * AI and launch-readiness endpoints stay together because the generated site flow spans
 * designer chat/apply tools, site generation, and preview-to-go-live onboarding steps.
 */
export type AiAndLaunchReadinessAPIEndpointDefinitions = {
    aiAssistantChatSite: APIEndpoint<{
        pageId: string;
        messages: JsonValue;
        feedback?: unknown;
    }, {
        siteId: string;
    }, ReadableStream<Uint8Array>>;
    aiDesignerChat: APIEndpoint<{
        pageId: string;
        messages: JsonValue;
        feedback?: unknown;
    }, {
        siteId: string;
    }, ReadableStream<Uint8Array>>;
    aiContentUpdateChat: APIEndpoint<{
        messages: AIChatMessage[];
    }, never, ReadableStream<Uint8Array>>;
    aiChat: APIEndpoint<{
        messages: AIChatMessage[];
    }, never, ReadableStream<Uint8Array>>;
    aiDesignerThemeApply: APIEndpoint<ApplyAiDesignerThemePatchRequest, {
        siteId: string;
    }, ApplyAiDesignerThemePatchResponse>;
    aiDesignerPageOpsApply: APIEndpoint<ApplyAiDesignerPageOpsRequest, {
        siteId: string;
    }, ApplyAiDesignerPageOpsResponse>;
    aiCreateBriefChat: APIEndpoint<{
        messages: AIChatMessage[];
    }, never, AiBriefTurn>;
    aiPatchDryRun: APIEndpoint<AiPatchRequest, never, AiPatchDryRunResponse>;
    aiPatchApply: APIEndpoint<AiPatchRequest, never, AiPatchApplyResponse>;
    aiPlaygroundProposeMulti: APIEndpoint<PlaygroundProposeRequest, {
        siteId: string;
    }, ReadableStream<Uint8Array>>;
    aiPlaygroundProposeMultiGet: APIEndpoint<never, {
        siteId: string;
        request: string;
    }, ReadableStream<Uint8Array>>;
    aiPlaygroundPageConvert: APIEndpoint<{
        source: string;
        sourceKind?: "html" | "tsx";
        pageName?: string;
        pagePath?: string;
    }, {
        siteId: string;
    }, PageConvertResponse>;
    aiPlaygroundPageConvertJobsCreate: APIEndpoint<PageConvertJobsCreateRequest, {
        siteId: string;
    }, PageConvertJobsCreateResponse>;
    aiPlaygroundPageConvertJobsList: APIEndpoint<never, {
        siteId: string;
        limit?: string;
    }, PageConvertJobsListResponse>;
    aiPlaygroundPageConvertJobGet: APIEndpoint<never, {
        siteId: string;
        jobId: string;
    }, PageConvertJobGetResponse>;
    aiPlaygroundPageConvertJobRun: APIEndpoint<never, {
        siteId: string;
        jobId: string;
    }, PageConvertJobRunResponse>;
    aiPlaygroundPageConvertJobEvents: APIEndpoint<never, {
        siteId: string;
        jobId: string;
        sinceId?: string;
        limit?: string;
    }, PageConvertJobEventsResponse>;
    aiGenerateSite: APIEndpoint<AiGenerateSiteRequest, {
        siteId: string;
    }, AiGenerateSiteResponse>;
    getOnboardingPreviewStatus: APIEndpoint<never, {
        siteId: string;
        stage?: "preview" | "published";
    }, OnboardingPreviewStatusResponse>;
    listOnboardingPreviewThemes: APIEndpoint<never, {
        siteId: string;
        stage?: "preview" | "published";
    }, OnboardingPreviewThemesResponse>;
    acknowledgeLaunchRequirement: APIEndpoint<AcknowledgeLaunchRequirementRequest, {
        siteId: string;
    }, AcknowledgeLaunchRequirementResponse>;
    goLiveSite: APIEndpoint<never, {
        siteId: string;
    }, GoLiveSiteResponse>;
    resendOnboardingPreviewConfirmation: APIEndpoint<never, {
        siteId: string;
        stage?: "preview" | "published";
    }, ResendOnboardingPreviewConfirmationResponse>;
    createPublicOnboardingAttempt: APIEndpoint<PublicOnboardingAttemptPayload, never, PublicOnboardingAttemptResponse>;
    createPublicOnboardingLogoUploadUrl: APIEndpoint<PublicOnboardingLogoUploadUrlRequest, {
        attemptToken: string;
    }, PublicOnboardingLogoUploadUrlResponse>;
    uploadPublicOnboardingLogo: APIEndpoint<PublicOnboardingLogoUploadRequest, {
        attemptToken: string;
    }, PublicOnboardingLogoUploadResponse>;
    getPublicOnboardingAttempt: APIEndpoint<never, {
        attemptToken: string;
    }, PublicOnboardingAttemptResponse>;
    getPublicOnboardingAttemptProgress: APIEndpoint<never, {
        attemptToken: string;
    }, PublicOnboardingAttemptProgressResponse>;
    updatePublicOnboardingAttempt: APIEndpoint<PublicOnboardingAttemptPayload, {
        attemptToken: string;
    }, PublicOnboardingAttemptResponse>;
    runPublicOnboardingAttempt: APIEndpoint<never, {
        attemptToken: string;
    }, PublicOnboardingAttemptRunResponse>;
    aiSiteWizardSuggestGoals: APIEndpoint<AiSiteWizardSuggestGoalsRequest, {
        siteId: string;
    }, AiSiteWizardSuggestGoalsResponse>;
    aiSiteWizardIntakeTriage: APIEndpoint<AiSiteWizardIntakeTriageRequest, {
        siteId: string;
    }, AiSiteWizardIntakeTriageResponse>;
    aiSiteWizardTelemetry: APIEndpoint<AiSiteWizardTelemetryRequest, {
        siteId: string;
    }, AiSiteWizardTelemetryResponse>;
};
export type AiAPIEndpoints = Pick<AiAndLaunchReadinessAPIEndpointDefinitions, AiAPIEndpointName>;
export type LaunchReadinessAPIEndpoints = Pick<AiAndLaunchReadinessAPIEndpointDefinitions, LaunchReadinessAPIEndpointName>;
