/// <reference types="node" />
/// <reference types="bun-types" />
import type { TargetType } from '../targets/target-adapter';
import type { ProfileType } from '../types/profile';
import type { OfficialChannelId, OfficialChannelsConfig } from '../config/unified-config-types';
import type { OfficialChannelTokenSource } from './official-channels-store';
import { type ClaudeAuthStatus } from '../utils/claude-detector';
export interface OfficialChannelDefinition {
    id: OfficialChannelId;
    displayName: string;
    pluginSpec: string;
    envKey?: string;
    envDir: string;
    stateDirEnvKey: string;
    requiresMacOS?: boolean;
    manualSetupCommands: string[];
}
export declare const OFFICIAL_CHANNELS: Record<OfficialChannelId, OfficialChannelDefinition>;
import { OFFICIAL_CHANNEL_IDS, isOfficialChannelId, normalizeOfficialChannelIds, resolveLegacyDiscordSelection } from './official-channels-ids';
export { OFFICIAL_CHANNEL_IDS, isOfficialChannelId, normalizeOfficialChannelIds, resolveLegacyDiscordSelection, };
export declare const MINIMUM_OFFICIAL_CHANNELS_CLAUDE_VERSION = "2.1.80";
export interface OfficialChannelsVersionSummary {
    current: string | null;
    minimum: string;
    state: 'supported' | 'unsupported' | 'unknown';
    message: string;
}
export interface OfficialChannelsAuthSummary {
    checked: boolean;
    loggedIn: boolean;
    authMethod: string | null;
    subscriptionType: string | null;
    state: 'eligible' | 'ineligible' | 'unknown';
    eligible: boolean;
    message: string;
    orgRequirementMessage?: string;
}
export interface OfficialChannelsEnvironmentStatus {
    bunInstalled: boolean;
    supportedProfiles: string[];
    stateScopeMessage: string;
    claudeVersion: OfficialChannelsVersionSummary;
    auth: OfficialChannelsAuthSummary;
}
export interface OfficialChannelSetupSummary {
    state: 'not_selected' | 'ready' | 'needs_token' | 'needs_claude_setup' | 'unavailable';
    label: string;
    detail: string;
    nextStep: string;
}
export interface OfficialChannelsReadinessSummary {
    state: 'ready' | 'needs_setup' | 'limited';
    title: string;
    message: string;
    nextStep: string;
    blockers: string[];
}
export interface OfficialChannelsLaunchPreview {
    state: 'disabled' | 'blocked' | 'partial' | 'ready';
    title: string;
    detail: string;
    command: string;
    appendedArgs: string[];
    appliedChannels: OfficialChannelId[];
    permissionBypassIncluded: boolean;
    skippedMessages: string[];
}
export interface OfficialChannelsStatusChannelInput {
    id: OfficialChannelId;
    displayName: string;
    selected: boolean;
    requiresToken: boolean;
    tokenAvailable: boolean;
    tokenSource?: OfficialChannelTokenSource;
    savedInClaudeState?: boolean;
    processEnvAvailable?: boolean;
    unavailableReason?: string;
}
export interface DiscordChannelsLaunchPlan {
    applied: boolean;
    wantsPermissionBypass: boolean;
    appliedChannels: OfficialChannelId[];
    skippedMessages: string[];
}
interface DiscordChannelsLaunchInput {
    args: string[];
    config: OfficialChannelsConfig;
    target: TargetType;
    profileType: ProfileType;
    environment: OfficialChannelsEnvironmentStatus;
    channelReadiness: Record<OfficialChannelId, boolean>;
}
export declare function isBunAvailable(): boolean;
export declare function isMacOS(): boolean;
export declare function isDiscordChannelsSessionSupported(target: TargetType, profileType: ProfileType): boolean;
export declare function hasExplicitChannelsFlag(args: string[]): boolean;
export declare function hasExplicitPermissionOverride(args: string[]): boolean;
export declare function resolveOfficialChannelsVersionSummary(version: string | null): OfficialChannelsVersionSummary;
export declare function resolveOfficialChannelsAuthSummary(authStatus: ClaudeAuthStatus | null): OfficialChannelsAuthSummary;
export declare function getOfficialChannelsStateScopeMessage(): string;
export declare function getOfficialChannelsSupportMessage(): string;
export declare function getOfficialChannelsAccountStatusCaveat(): string;
export declare function getOfficialChannelsEnvironmentStatus(authEnvOverrides?: NodeJS.ProcessEnv): OfficialChannelsEnvironmentStatus;
export declare function buildOfficialChannelsArgs(args: string[], channels: OfficialChannelId[], includePermissionBypass: boolean): string[];
export declare function resolveOfficialChannelsLaunchPlan(input: DiscordChannelsLaunchInput): DiscordChannelsLaunchPlan;
export declare function getOfficialChannelTokenIds(): OfficialChannelId[];
export declare function getOfficialChannelManualSetupCommands(channelId: OfficialChannelId): string[];
export declare function getOfficialChannelDisplayName(channelId: OfficialChannelId): string;
export declare function getOfficialChannelPluginSpec(channelId: OfficialChannelId): string;
export declare function getOfficialChannelEnvKey(channelId: OfficialChannelId): string | undefined;
export declare function officialChannelRequiresMacOS(channelId: OfficialChannelId): boolean;
export declare function getOfficialChannelEnvDir(channelId: OfficialChannelId): string;
export declare function getOfficialChannelStateDirEnvKey(channelId: OfficialChannelId): string;
export declare function getOfficialChannelSummary(channelId: OfficialChannelId): string;
export declare function getOfficialChannelUnavailableReason(channelId: OfficialChannelId): string | undefined;
export declare function getOfficialChannelReadyMessage(channelId: OfficialChannelId): string;
export declare function buildOfficialChannelSetupSummary(channel: OfficialChannelsStatusChannelInput): OfficialChannelSetupSummary;
export declare function buildOfficialChannelsReadinessSummary(input: {
    config: OfficialChannelsConfig;
    environment: OfficialChannelsEnvironmentStatus;
    channels: OfficialChannelsStatusChannelInput[];
}): OfficialChannelsReadinessSummary;
export declare function buildOfficialChannelsLaunchPreview(input: {
    config: OfficialChannelsConfig;
    environment: OfficialChannelsEnvironmentStatus;
    channels: OfficialChannelsStatusChannelInput[];
}): OfficialChannelsLaunchPreview;
export declare function expandOfficialChannelSelection(selection: string): OfficialChannelId[];
export declare function getOfficialChannelChoices(): string;
export declare function isOfficialChannelSelectionValid(selection: string): boolean;
export declare function getOfficialChannelsSupportedProfiles(): string[];
export declare function getChannelConfigSelectionLabel(selected: OfficialChannelId[]): string;
export declare function getTokenValueLabel(channelId: OfficialChannelId): string;
export declare function isOfficialChannelTokenRequired(channelId: OfficialChannelId): boolean;
export declare function getOfficialChannelDefaultTokenPlaceholder(channelId: OfficialChannelId): string;
export declare function getOfficialChannelConfiguredPlaceholder(channelId: OfficialChannelId): string;
export declare function getOfficialChannelsSectionDescription(): string;
export declare function getOfficialChannelsRuntimeNote(): string;
export declare function getOfficialChannelsSetHelp(): string;
export declare function getOfficialChannelsLegacyEnableHelp(): string;
export declare function getOfficialChannelTokenHelp(): string;
export declare function getOfficialChannelClearTokenHelp(): string;
export declare function getOfficialChannelMacOSHelp(): string;
export declare function getOfficialChannelsDocsSummary(): string;
export declare function getOfficialChannelSyncFailureMessage(channelId: OfficialChannelId, targetPath: string): string;
export declare function getOfficialChannelSyncSkipReason(channelId: OfficialChannelId): string;
export declare function getOfficialChannelsExplicitOverrideMessage(): string | undefined;
export declare function getOfficialChannelTokenMissingMessage(channelId: OfficialChannelId): string;
export declare function getOfficialChannelsBunMissingMessage(): string;
export declare function getOfficialChannelsCompatibilityMessage(): string;
export declare function getOfficialChannelsNoSelectionMessage(): string;
export declare function getOfficialChannelsPermissionBypassMessage(): string;
export declare function getOfficialChannelsSelectionSummary(selected: OfficialChannelId[]): string[];
//# sourceMappingURL=official-channels-runtime.d.ts.map