/** * The files a payload names by declaration rather than by `files:` — `native:` * paths, platform-qualified controller `path=`s and `sources:` notices — and * whether each can ship as the manifest describes it. The rules are the * analyzer's (`stageableFiles`, `unclaimedSourceEntries`), so publish and * `telo check` refuse the same modules; what is here is the filesystem half. */ import { type ModuleFileClaim, type ModuleSource, type NativeEntry, type SourceEntry } from "@telorun/analyzer"; /** * The module doc's `native:` entries. * * An unreadable block is fatal here even though `telo check` reports it too: a * `telo release` digest runs no analysis, and an entry skipped at publish would * ship an artifact missing a platform's file. */ export declare function readNativeFiles(manifest: string, manifestDir: string): NativeEntry[]; /** The module doc's `sources:` block, read off the AUTHORED manifest — publish * removes it from the text that ships. Fatal when unreadable, for the reason * `readNativeFiles` gives; a source naming no notices is one such block. */ export declare function readSources(ownerJson: unknown, manifestDir: string): ModuleSource[]; export interface StagedFile { readonly source: ModuleSource; readonly entry: SourceEntry; } export declare function stagedEntriesOf(sources: readonly ModuleSource[]): Map; /** * Refuse a payload whose named files cannot ship as the manifest describes them. * * For each stageable file (`stageableFiles`) that no build produces, and each * notice a source names: * * - staged by a source — read from its pin, the pin must exist; read from disk * (publish), what is on disk must match it, so a stale or tampered file never * ships under a pin that says otherwise; * - staged by none — the file must exist, and at publish a native or candidate * file must be tracked by git: a binary nobody committed and nothing fetches * is one the next checkout cannot reproduce. * * A source entry nothing names is refused too, as `telo check` refuses it, or a * `files:` pattern would ship it from a staged tree and not from a cold one. */ export declare function assertNamedFiles(manifestDir: string, native: readonly NativeEntry[], claims: readonly ModuleFileClaim[], sources: readonly ModuleSource[], staged: ReadonlyMap, fromPins: boolean): Promise; //# sourceMappingURL=staged-files.d.ts.map