import { Command } from '@oclif/core'; import type { Project, TokenVerifyResponse } from './models/auth.js'; import { AuthService } from './services/auth.js'; import { CliApiClient } from './services/cli-api.js'; import { ContextStore } from './services/context-store.js'; import { type ProjectAccess } from './services/project-access.js'; import { ProjectContextService } from './services/project-context.js'; import { TokenStore } from './services/token-store.js'; export type ResolvedProjectSelection = { kind: 'multiple'; projects: Project[]; } | { kind: 'none'; projects: Project[]; } | { kind: 'selected'; project: { id: string; name: string; }; source: 'current' | 'explicit' | 'only'; }; export declare const outputFlag: import("@oclif/core/interfaces").OptionFlag; export declare const workflowOutputFlag: import("@oclif/core/interfaces").OptionFlag; export declare const projectFlag: import("@oclif/core/interfaces").OptionFlag; export declare function createPhoneNumberIdFlag(options?: { required?: boolean; }): import("@oclif/core/interfaces").OptionFlag; export declare const phoneNumberFlag: import("@oclif/core/interfaces").OptionFlag; type PhoneNumberSelector = { input: string; phoneNumber?: string; phoneNumberId?: string; }; export declare abstract class BaseCommand extends Command { protected readonly tokenStore: TokenStore; protected readonly authService: AuthService; protected readonly cliApi: CliApiClient; protected readonly contextStore: ContextStore; protected readonly projectContext: ProjectContextService; protected exitSilently(code?: number): never; protected fail(error: unknown): never; protected getApiKeyProjectAccess(explicitProjectId?: string): null | ProjectAccess; protected requireAuthenticated(): Promise; protected requireAuthenticatedProjectId(explicitProjectId?: string): Promise; protected requireProjectAccess(explicitProjectId?: string): Promise; protected resolveProjectSelection(explicitProjectId?: string, options?: { persistOnlyProject?: boolean; }): Promise; protected resolveWhatsAppPhoneNumberId(projectAccess: ProjectAccess, options: { conversationId?: string; phoneNumber?: string; phoneNumberId?: string; }): Promise; protected selectPhoneNumberReference(options: { numberRef?: string; phoneNumber?: string; phoneNumberId?: string; }, config?: { required?: boolean; }): null | PhoneNumberSelector; } export {};