import type { PublishItemsMode } from "../api/types.js"; export interface RunPublishItemOptions { config?: string; environmentName?: string; /** Item IDs (GUIDs) to publish. At least one of `itemIds` or * `paths` is required. The API accepts an array; scai bundles all * IDs into a single publishing job (one POST /jobs, one job id, * one audit entry). For large batches consider tenant rate limits * — the API documents no hard cap but treats each item as a unit * of work. */ itemIds?: string[]; /** Content-tree paths (e.g. `/sitecore/content/Home`). Resolved to * item IDs via Authoring GraphQL before submission. Merged into * the same job as `itemIds`; paths that don't resolve fail the * whole call before any API write. */ paths?: string[]; /** Site name. Resolves to the site's content-tree root item via * Sites + Authoring GraphQL, and adds that item to the publish * target list. Composable with `itemIds` and `paths` (target list * is the union). Combine with `--include-subitems` to publish the * whole site subtree; omit to publish just the root item. */ site?: string; /** ItemModel.type — defaults to "item". The Publishing API accepts * a free-form string here; if your tenant uses a different value * (e.g. "Item" or "ContentItem"), pass it explicitly. */ itemType?: string; /** Literal language list (e.g. `["en-US", "fr-CA"]`). Mapped to * `xmc.locales`. Mutually exclusive with `languagesFromSite` and * `allTenantLanguages` — set exactly one of the three. When none * is set, scai auto-resolves the tenant-wide language inventory * and logs it; the Publishing API has no implicit default. */ languages?: string[]; /** Resolve the language list from the named site's configuration via * the Sites API. Explicit — the verb logs the resolved set before * submitting. */ languagesFromSite?: string; /** Resolve the language list to every language registered in the * tenant (via the Sites API `listLanguages` endpoint). */ allTenantLanguages?: boolean; /** Map to xmc.items.publishChildren — matches dotnet --subitems. */ includeSubitems?: boolean; /** Map to xmc.items.publishRelatedItems — matches dotnet --related. */ includeRelated?: boolean; /** Publish mode. Per the Publishing API spec, items-level publish * supports only `Smart` (default) and `Republish` — Incremental * is whole-environment only and lives on `publish all`. */ mode?: PublishItemsMode; /** Dry-run; default true. Real publish requires --allow-write. */ whatIf?: boolean; /** Required to actually call the API. */ allowWrite?: boolean; /** Scope token issued by a previous dry-run; required on prod tier. */ confirmToken?: string; /** Skip the interactive prompt on non-prod envs. */ yes?: boolean; /** Override the job name in the API request. */ name?: string; /** Override the source field in the API request. */ source?: string; /** Output / verbosity. */ verbose?: boolean; trace?: boolean; quiet?: boolean; json?: boolean; logFile?: string; /** Non-interactive (e.g. CI) — refuse the [y/N] fallback path. */ nonInteractive?: boolean; } export declare const runPublishItem: (options: RunPublishItemOptions) => Promise;