import { type BuildChannel } from "../../build-metadata"; import { type ReadTargetResult } from "./json-publisher"; export interface PaseoProviderEntry { extends: string; label: string; command: string[]; env: Record; enabled: boolean; } export type GjcCommandResolution = { readonly ok: true; readonly command: string[]; readonly channel: BuildChannel; } | { readonly ok: false; readonly channel: BuildChannel; readonly detail: string; }; export type ProviderConflict = { readonly conflict: false; } | { readonly conflict: true; readonly subject: string; readonly detail: string; }; export declare function resolveGjcCommand(): GjcCommandResolution; export declare function providerKeyFor(mpreset?: string): string; export declare function buildProviderEntry(command: string[], mpreset?: string): PaseoProviderEntry; /** * Produces the narrowly scoped mutation passed to {@link planPublish}. The * read result is accepted so callers retain an explicit preflight-to-plan flow. */ export declare function createProviderMutation(_current: ReadTargetResult, key: string, entry: PaseoProviderEntry): (draft: Record) => void; export declare function hasProviderConflict(config: Record, key: string, entry: PaseoProviderEntry): ProviderConflict; export declare function providerEntryHash(entry: PaseoProviderEntry): string;