import type { OpenPlatformAutomationResult } from './open-platform-automation.js'; type OpenPlatformAutomationSuccess = Extract; type OpenPlatformAutomationFailure = Extract; export type SetupOpenPlatformOutcome = { status: 'skipped'; } | { status: 'ready'; result: OpenPlatformAutomationSuccess; } | { status: 'ready_with_warnings'; result: OpenPlatformAutomationSuccess; } | { status: 'manual'; result: OpenPlatformAutomationFailure; } | { status: 'failed'; result: OpenPlatformAutomationFailure; }; /** * Translate the low-level Open Platform response into setup completion * semantics. Lark's SDK compatibility path is intentionally manual because the * Feishu Web console automation does not apply there; it must not be reported * as a failed Feishu one-click setup. */ export declare function classifySetupOpenPlatformOutcome(result: OpenPlatformAutomationResult): Exclude; /** Critical Feishu automation failures leave a persisted but not-yet-ready bot. */ export declare function blocksSetupBotStart(outcome: SetupOpenPlatformOutcome): boolean; /** Build a retry command only when rerunning automation can make progress. */ export declare function setupOpenPlatformRetryCommand(appId: string, outcome: SetupOpenPlatformOutcome): string | undefined; /** * Scripted JSON callers must never receive an unexpected QR, including BYO * credential mode. The one-scan create path also reuses the session it just * acquired so it never scans twice. */ export declare function scriptedSetupOpenPlatformReuseOnly(options: { json: boolean; createApp: boolean; compatibilityMode: boolean; brand: 'feishu' | 'lark'; }): boolean; /** Secret-free JSON representation used by scripted setup output. */ export declare function setupOpenPlatformOutcomeJson(outcome: SetupOpenPlatformOutcome): Record; export {}; //# sourceMappingURL=open-platform-outcome.d.ts.map