///
import { z } from "zod";
import { type AuthStrategy } from "../../EditorConfig";
export interface OnboardingStep {
id: OnboardingStepId;
title: string;
description: string;
content?: JSX.Element;
videoUrl?: string;
defaultCompleted?: boolean;
}
export declare const OnboardingStepId: z.ZodEnum<["createPrismicProject", "chooseLocale", "createProject", "setupSliceMachine", "createPageType", "codePage", "createSlice", "reviewAndPush", "createContent", "renderPage"]>;
export type OnboardingStepId = z.infer;
export declare const onboardingStateSchema: z.ZodObject<{
completedSteps: z.ZodArray;
isDismissed: z.ZodBoolean;
context: z.ZodObject<{
framework: z.ZodEffects, "next" | "nuxt" | "sveltekit" | "other", unknown>;
starterId: z.ZodOptional>;
}, "strip", z.ZodTypeAny, {
framework: "next" | "nuxt" | "sveltekit" | "other";
starterId?: string | null | undefined;
}, {
framework?: unknown;
starterId?: string | null | undefined;
}>;
}, "strip", z.ZodTypeAny, {
context: {
framework: "next" | "nuxt" | "sveltekit" | "other";
starterId?: string | null | undefined;
};
completedSteps: string[];
isDismissed: boolean;
}, {
context: {
framework?: unknown;
starterId?: string | null | undefined;
};
completedSteps: string[];
isDismissed: boolean;
}>;
export type OnboardingState = z.infer;
export type OnboardingFramework = OnboardingState["context"]["framework"];
export declare const onboardingToggleStepResultSchema: z.ZodObject<{
completedSteps: z.ZodArray;
}, "strip", z.ZodTypeAny, {
completedSteps: string[];
}, {
completedSteps: string[];
}>;
export type OnboardingToggleStepResult = z.infer;
export declare const onboardingToggleResultSchema: z.ZodObject<{
isDismissed: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
isDismissed: boolean;
}, {
isDismissed: boolean;
}>;
export type OnboardingToggleResult = z.infer;
export declare function getOnboarding(baseUrl: URL, repository: string, authStrategy: AuthStrategy): Promise;
export declare function toggleOnboardingStep(stepId: string, baseUrl: URL, repository: string, authStrategy: AuthStrategy): Promise;
export declare function toggleOnboarding(baseUrl: URL, repository: string, authStrategy: AuthStrategy): Promise;
export type OnboardingTrackSource = "PageBuilder" | "SliceMachine";
export type OnboardingTrackEvent = {
event: "shared-onboarding:step-completed";
stepId: string;
stepTitle: string;
source: OnboardingTrackSource;
} | {
event: "shared-onboarding:step-opened";
stepId: string;
stepTitle: string;
source: OnboardingTrackSource;
} | {
event: "shared-onboarding:completed";
source: OnboardingTrackSource;
} | {
event: "shared-onboarding:follow-tutorial";
source: OnboardingTrackSource;
};
export interface OnboardingTracking {
track: (args: OnboardingTrackEvent) => void | Promise;
source: OnboardingTrackSource;
}