import { FxError } from "@microsoft/teamsfx-api"; import { Result } from "neverthrow"; import { TemplateSource, computeDigest } from "./templateSource"; export type TemplateArtifactKind = "create-selector" | "modify-selector" | "metadata" | "templates"; export type TemplateArtifactOrigin = "bundled" | "online" | "cache" | "bundled-fallback"; export interface TemplateArtifactRef { kind: TemplateArtifactKind; file: string; digest: string; } export interface V4TemplateTagEntry { version: string; artifacts: Record; } export interface CachedTemplateArtifact { digest: string; bytes: Buffer; } export interface BundledTemplateArtifacts { version: string; artifacts: Record; locations: Record; } export interface TemplateArtifactPort { env(name: string): string | undefined; tagList(): Promise; download(version: string, ref: TemplateArtifactRef): Promise; cache: { get(version: string, kind: TemplateArtifactKind): CachedTemplateArtifact | undefined; put(version: string, kind: TemplateArtifactKind, digest: string, bytes: Buffer): void; keys(kind: TemplateArtifactKind): string[]; delete(version: string, kind: TemplateArtifactKind): void; }; bundled: BundledTemplateArtifacts; } export interface TemplateArtifactSnapshot { version: string; origin: TemplateArtifactOrigin; artifacts: Record; bytes(kind: TemplateArtifactKind): Promise>; } export interface ResolveTemplateArtifactSnapshotInput { range: string; bundled: boolean; requiredKind: TemplateArtifactKind; port: TemplateArtifactPort; } export interface TemplateArtifactChannelConfig { templatesV4TagListURL: string; templateDownloadBaseURL: string; tryLimits: number; } export declare const computeArtifactDigest: typeof computeDigest; export declare function templateSourceFromArtifactSnapshot(snapshot: TemplateArtifactSnapshot): TemplateSource; export declare function artifactUrl(baseURL: string, version: string, ref: TemplateArtifactRef): string; export declare function artifactCacheFile(version: string, kind: TemplateArtifactKind): string; export declare function parseArtifactTagList(ndjson: string): V4TemplateTagEntry[]; export declare function resolveTemplateArtifactSnapshot(input: ResolveTemplateArtifactSnapshotInput): Promise>; export declare function artifactFileName(kind: TemplateArtifactKind): string; export declare function createTemplateArtifactPort(config: TemplateArtifactChannelConfig, bundled: BundledTemplateArtifacts): TemplateArtifactPort; //# sourceMappingURL=templateArtifacts.d.ts.map