import { spawnSync } from "node:child_process"; export interface InternalOnboardingSlackCliRunnerOptions { stdinJson?: Readonly>; } export type InternalOnboardingSlackCliRunner = (argv: readonly string[], options?: InternalOnboardingSlackCliRunnerOptions) => Promise | unknown; export interface ProductionInternalOnboardingSlackCliRunnerInput { adminHome: string; profileRoot: string; processRunner?: typeof spawnSync; } export interface InternalOnboardingSlackCliInput { adminHome: string; lifecycleId: string; runner?: InternalOnboardingSlackCliRunner; } export interface InternalOnboardingSlackPreflightReceipt { ok: boolean; status: "ready" | "needs_attention"; code?: string; writeCalls: 0; preflightCalls: number; configFingerprint?: string; } export interface InternalOnboardingSlackCommandResult { ok: boolean; code?: string; remoteCode?: string; output?: Record; } export interface RestrictedInternalOnboardingSlackCli { preflight: InternalOnboardingSlackPreflightReceipt; createPrivateChannel(name: string): Promise; invite(channelId: string, userIds: readonly string[]): Promise; members(channelId: string, cursor?: string): Promise; history(channelId: string, messageTs?: string): Promise; replies(channelId: string, threadTs: string): Promise; reply(channelId: string, threadTs: string, text: string): Promise; } export declare function createProductionInternalOnboardingSlackCliRunner(input: ProductionInternalOnboardingSlackCliRunnerInput): InternalOnboardingSlackCliRunner; export declare function preflightInternalOnboardingSlackActor(input: InternalOnboardingSlackCliInput): Promise; export declare function openRestrictedInternalOnboardingSlackCli(input: InternalOnboardingSlackCliInput): Promise<{ ok: true; client: RestrictedInternalOnboardingSlackCli; } | { ok: false; receipt: InternalOnboardingSlackPreflightReceipt; }>;