import type { DevPortalConfig, SidebarConfig } from "@zuplo/types";
import type { Plugin } from "./runner.js";
export interface Arguments {
  dir: string;
  force: boolean;
}
export interface ZudokuConfig {
  metadata?: {
    favicon?: string;
    title?: string;
  };
  site?: {
    title?: string;
  };
  navigation?: ZudokuNavigationItem[];
  apis?: {
    type: "file" | "url";
    input: string;
    path: string;
    options?: {
      examplesLanguage?: string;
      disablePlayground?: boolean;
      disableSidecar?: boolean;
      showVersionSelect?: "if-available" | "always" | "hide";
      expandAllTags?: boolean;
    };
  }[];
  basePath?: string;
  authentication?: {
    type: string;
    clientId?: string;
    domain?: string;
    audience?: string;
    scopes?: string[];
    tenantName?: string;
    policyName?: string;
    issuer?: string;
    clerkPubKey?: string;
  };
  apiKeys?: {
    enabled: boolean;
  };
}
export type ZudokuNavigationItem =
  | string
  | {
      type: "doc" | "category" | "link";
      label?: string;
      file?: string;
      path?: string;
      to?: string;
      link?:
        | string
        | {
            type: "doc";
            file: string;
          };
      items?: ZudokuNavigationItem[];
      icon?: string;
      badge?: {
        label: string;
        color:
          | "green"
          | "blue"
          | "yellow"
          | "red"
          | "purple"
          | "indigo"
          | "gray";
      };
    };
export interface MigrationConfig {
  absoluteBaseDir: string;
  force: boolean;
}
export type MigrationData = {
  packageJson?: Record<string, unknown>;
  devPortalConfig?: DevPortalConfig;
  sidebar?: SidebarConfig;
  zudokuConfig?: ZudokuConfig;
};
export type MigrationPlugin = Plugin<MigrationConfig, MigrationData>;
//# sourceMappingURL=types.d.ts.map
