import type { ExtensionConfig, ExtensionTarget } from './types'; /** Whether the project declares this store at all. */ export declare function isTargetConfigured(config: ExtensionConfig, target: ExtensionTarget): boolean; /** The credential variables a configured target still needs, if any. */ export declare function missingCredentials(target: ExtensionTarget, env: PublishEnv): string[]; /** * Decide what a release publishes. Targets are always returned in a stable * order, including the skipped ones, so the release log shows the whole * picture rather than only what happened to run. */ export declare function planExtensionPublish(config: ExtensionConfig, env?: PublishEnv, targets?: readonly ExtensionTarget[]): PublishDecision[]; /** One line per target, for the release log. */ export declare function formatPublishPlan(decisions: readonly PublishDecision[]): string; export declare interface PublishDecision { target: ExtensionTarget publish: boolean reason?: PublishSkipReason detail?: string } /** Why a target is not being published. */ export type PublishSkipReason = 'not-configured' | 'missing-credentials'; /** The environment a plan is resolved against; `process.env` in practice. */ export type PublishEnv = Record;