import type { DesignSystemScope } from "$/ai-utils";
export interface CLIArgs {
    /** Figma access token */
    figmaToken?: string;
    /** GitHub access token */
    githubToken?: string;
    /** Run in CI mode without interactive prompts */
    ci?: boolean;
    /** Show help text */
    help?: boolean;
    /** Force operation even if there are warnings */
    force?: boolean;
    /** Print output as JSON */
    verbose?: boolean;
    /** Run in dry-run mode without making changes */
    dryrun?: boolean;
    /** Auto-confirm all prompts */
    yes?: boolean;
    /** Builder.io space ID */
    spaceId?: string;
    /** Component name to use */
    componentName?: string;
    /** Mapping directory to use */
    mappingOutput?: string;
    /** Skip package installation step */
    skipInstallation?: boolean;
    /** Skip detailed grouping in repo indexing */
    skipDetailedGrouping?: boolean;
    /** Skip display of header in repo indexing */
    skipHeader?: boolean;
    /** NPM package name to index */
    designSystemPackage?: string;
    /**
     * A user-friendly design system name to index.
     *
     * This can be used in conjunction with designSystemPackage to index components
     * where the design system name is different than the npm package name.
     * Example: --designSystemPackage=@adobe/react-spectrum --designSystemName="Adobe React Spectrum"
     *
     * This flag can also be used with addDirectory to specify a name for design systems
     * that are not npm packages.
     * Example: --addDirectory "path/to/swift/ui/components" --designSystemName="Native UI"
     **/
    designSystemName?: string;
    /**
     * Comma separated string of directories to look in for repo indexing.
     * Use this when component implementations live in a different place
     * than the workspace package you are indexing.
     * Example: --includeDirectories "packages/foo, packages/bar"
     *
     * @deprecated Use addDirectory instead
     **/
    includeDirectories?: string;
    /**
     * Additional directories to look in for repo indexing.
     * Use this when component implementations live in a different place
     * than the workspace package you are indexing.
     *
     * @alias add
     * Example: --addDirectory "../docs" --addDirectory "../../bar"
     */
    addDirectory?: string | string[];
    /**
     * Path to the custom docs folder to upload.
     * Example: --uploadCustomDocs ./docs/manual
     */
    uploadCustomDocs?: string;
    /** The scope of the design system to index */
    scope?: DesignSystemScope;
    /** Token to use for figma */
    token?: string;
    /** Url to start from */
    url?: string;
    /** Node ID from Figma URL */
    nodeId?: string;
    /** Prompt text for non-interactive mode */
    prompt?: string;
    /** Generation mode */
    mode?: "quality" | "quality-v3";
    /** Working directory to run commands from */
    cwd?: string;
    /** Debug mode */
    debug?: boolean;
    /** Raw command line arguments */
    _: string[];
    /** Builder private key, used for authentication. */
    builderPrivateKey?: string;
    /** Builder public key, used for authentication. */
    builderPublicKey?: string;
    /** Builder user ID, used for authentication. */
    builderUserId?: string;
    /** Path to workspace configuration file */
    workspace?: string;
    /** Output structured JSON data instead of human-readable logs */
    jsonOutput?: boolean;
    /** Remove all mappings from the space, publishing zero mappings even if mapper files exist */
    clearMappings?: boolean;
    /** Enabled tools, list of strings separated by commas */
    enabledTools?: string;
    /** Disabled tools, list of strings separated by commas */
    disabledTools?: string;
    /** If true run brief indexing before running code generation */
    index?: boolean;
    /** If true list indexed repositories */
    listIndexedRepos?: boolean;
    /** Disable MCP support */
    disableMcp?: boolean;
    /** Clear all stored credentials (logout) */
    reset?: boolean;
    /** Comma-separated list of component names to reindex */
    components?: string;
    nativeApp?: boolean;
    /** Install command to run for connect-repo (e.g., npm install) */
    installCommand?: string;
    /** Use development server instead of production for launch command */
    dev?: boolean;
    /** Use native builder:// protocol instead of https:// */
    app?: boolean;
    /** Skip browser auto-open (flag form) */
    open?: boolean;
    /**
     * Glob pattern(s) to include for repo indexing access control.
     * When specified, only these patterns will be accessible by default.
     * Can be a single string or array of strings (when flag is repeated).
     * Example: --include "src/components/*.tsx" --include "src/lib/*.ts"
     */
    include?: string | string[];
    /**
     * Glob pattern(s) to exclude for repo indexing access control.
     * These patterns will be denied access even if included.
     * Can be a single string or array of strings (when flag is repeated).
     * Example: --exclude "*.test.ts" --exclude "__tests__/**"
     */
    exclude?: string | string[];
    /**
     * Extra instructions to be taken into account during repo indexing.
     * Example: --instructions "Do not index mapper files."
     */
    instructions?: string;
    /**
     * Accept self-signed SSL certificates.
     * Useful for development environments where SSL certificates are not trusted.
     * Example: --acceptSelfSigned
     */
    acceptSelfSigned?: boolean;
    /**
     * Create a fusion example project after design system indexing completes.
     * The project will be created with the design system pre-attached and a background
     * agent will be spawned to install the design system using installation.md.
     */
    createFusionExample?: boolean;
    /**
     * Test creating a fusion example project without running indexing.
     * Requires designSystemName to be provided or will prompt for it.
     */
    testFusionExample?: boolean;
    /** Run space-sync in continuous mode, syncing every 2 minutes */
    continuous?: boolean;
}
