import { Command } from "@oclif/core";
import { SupernovaApiClient } from "@supernova-studio/client";
import { z } from "zod";
import { SupernovaConfigService } from "../utils/config.service.js";
import { TargetEnv } from "./environment.js";
export declare abstract class BaseCommand<T extends object> extends Command {
    protected env: TargetEnv;
    protected configService: SupernovaConfigService;
    private _apiClient;
    abstract get commandId(): string;
    abstract get configSchema(): z.ZodType<T>;
    protected apiClient(): Promise<SupernovaApiClient>;
    protected ensureAuthenticated(): Promise<void>;
    protected performLogin(): Promise<boolean>;
    protected openBrowser(url: string): Promise<void>;
    protected promptLoginIfInteractive(): Promise<boolean>;
    protected init(): Promise<void>;
    protected promptBrandId(designSystemId: string, versionId?: string): Promise<string>;
    protected fetchAccessibleDesignSystems(): Promise<{
        accessible: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            workspaceId: string;
            meta: {
                name: string;
                description?: string | undefined;
            };
            sources: any[];
            isPublic: true;
            docExporterId: string;
            docSlug: string;
            docSlugDeprecated: string;
            isMultibrand: boolean;
            basePrefixes: string[];
            isApprovalFeatureEnabled: boolean;
            approvalRequiredForPublishing: boolean;
            accessMode: "Open" | "InviteOnly";
            membersGenerated: boolean;
            sharedDraftId: string;
            isAvailableToUser: boolean;
            icon?: {
                id: string;
                url: string;
                name?: string | undefined;
                source?: {
                    type: "UserUpload";
                    userId: string;
                } | {
                    type: "Figma";
                    renderMode: "Image" | "HTML" | "JSON";
                } | undefined;
            } | undefined;
            role?: "Owner" | "Admin" | "Creator" | "Viewer" | "Billing" | "Guest" | "Contributor" | undefined;
            docUserSlug?: string | undefined;
            docViewUrl?: string | undefined;
            designSystemSwitcher?: {
                isEnabled: boolean;
                designSystemIds: string[];
            } | undefined;
            iconFileId?: string | undefined;
            effectiveRole?: "Admin" | "Creator" | "Viewer" | "Contributor" | undefined;
        }[];
        workspaceById: Map<string, {
            id: string;
            profile: {
                name: string;
                color: string;
                handle: string;
                avatar?: string | undefined;
                billingDetails?: {
                    address?: {
                        state?: string | undefined;
                        street1?: string | undefined;
                        street2?: string | undefined;
                        city?: string | undefined;
                        postal?: string | undefined;
                        country?: string | undefined;
                    } | undefined;
                    email?: string | undefined;
                    notes?: string | undefined;
                    companyName?: string | undefined;
                    companyId?: string | undefined;
                    vat?: string | undefined;
                    poNumber?: string | undefined;
                } | undefined;
            };
            subscription: {
                product: "company" | "enterprise" | "free" | "team" | "pro";
                seats: number;
                seatLimit: number;
                planPriceId: string;
                planInterval: "daily" | "monthly" | "yearly";
                status?: NonNullable<"active" | "suspended" | "gracePeriod" | "cancelled" | "downgraded_to_free"> | undefined;
                card?: {
                    name?: string | null | undefined;
                    cardId?: string | null | undefined;
                    last4?: string | null | undefined;
                    expiryMonth?: string | null | undefined;
                    expiryYear?: string | null | undefined;
                    brand?: string | null | undefined;
                } | undefined;
                monthlyCreditGrantAnchor?: string | undefined;
                monthlyCreditGrantAmount?: number | undefined;
                builderSeatLimit?: number | undefined;
                fullSeatLimit?: number | undefined;
                additionalCredits?: number | undefined;
                mcpConsumerLimit?: number | undefined;
                builderSeats?: number | undefined;
                fullSeats?: number | undefined;
                subscriptionStatus?: NonNullable<"unknown" | "active" | "trialing" | "past_due" | "canceled" | "unpaid" | "incomplete_expired" | "incomplete"> | undefined;
                internalStatus?: NonNullable<"active" | "suspended" | "gracePeriod" | "cancelled" | "downgraded_to_free"> | undefined;
                stripeSubscriptionId?: string | undefined;
                stripeCustomerId?: string | undefined;
                stripeScheduleId?: string | undefined;
                currentPeriodStart?: string | undefined;
                currentPeriodEnd?: string | undefined;
                cancelAt?: string | undefined;
                fullSeatPriceId?: string | undefined;
                builderSeatPriceId?: string | undefined;
                additionalCreditsPriceId?: string | undefined;
                subscriptionStatusUpdatedAt?: string | undefined;
            };
            aiFeaturesEnabled: boolean;
            projectsEnabled: boolean;
            defaultProjectAccessMode: "Open" | "InviteOnly" | "Unlisted";
            defaultProjectRole: "Builder" | "Viewer";
            aiAskFeaturesEnabled: boolean;
            npmRegistry?: {
                authType: "Custom" | "None" | "Basic" | "Bearer";
                registryType: "Custom" | "NPMJS" | "GitHub" | "AzureDevOps" | "Artifactory";
                enabledScopes: string[];
                bypassProxy: boolean;
                registryUrl: string;
                proxyUrl: string;
                password?: string | undefined;
                username?: string | undefined;
                accessToken?: string | undefined;
                customRegistryUrl?: string | undefined;
            } | undefined;
            aiCustomInstruction?: string | undefined;
        }>;
    }>;
    protected promptDesignSystemFromList(accessible: Awaited<ReturnType<BaseCommand<T>["fetchAccessibleDesignSystems"]>>["accessible"], workspaceById: Awaited<ReturnType<BaseCommand<T>["fetchAccessibleDesignSystems"]>>["workspaceById"]): Promise<string>;
    protected promptDesignSystemId(): Promise<string>;
    protected getVersionId(designSystemId: string, versionId?: string): Promise<string>;
    protected getWorkspaceId(workspaceId?: string): Promise<string>;
    private prompt;
    private searchPrompt;
}
//# sourceMappingURL=base-command.d.ts.map