import { InitPlan } from "./plan.js"; import { Logger } from "./logger.js"; //#region src/cli/lib/provision.d.ts type ResourceKind = 'pull zone' | 'storage zone' | 'video library'; type LedgerEntry = { id: number; kind: ResourceKind; name: string; }; type Ledger = { created: LedgerEntry[]; reused: LedgerEntry[]; }; type StorageProvisionResult = { apiKey: string; edge?: { scriptUrl: string; secret: string; secretKnown?: boolean; }; hostname: string; region: string; tokenSecurityKey?: string; zoneName: string; }; type StreamProvisionResult = { apiKey: string; hostname: string; libraryId: number; tokenSecurityKey?: string; }; type ProvisionResult = { ledger: Ledger; storage?: StorageProvisionResult; stream?: StreamProvisionResult; }; type ResourceDisposition = 'create' | 'reuse'; type PreflightIssue = { message: string; resource: ResourceKind; }; type PreflightResult = { edgeScript?: ResourceDisposition; issues: PreflightIssue[]; storage?: ResourceDisposition; storagePullZone?: ResourceDisposition; stream?: ResourceDisposition; }; type EdgeProvisionInput = { reuseScript: boolean; sharedSecret?: string; }; type ProvisionInput = { accountApiKey: string; edge?: EdgeProvisionInput; ledger: Ledger; logger: Logger; onStep?: (message: string) => void; plan: InitPlan; }; declare const createLedger: () => Ledger; type NameStatus = 'available' | 'reuse' | 'taken'; type NameCheck = { detail?: string; status: NameStatus; }; type NameResolution = { name: string; reuse: boolean; }; declare const checkStorageName: (accountApiKey: string, name: string) => Promise; declare const checkLibraryName: (accountApiKey: string, name: string) => Promise; declare const resolveAvailableName: (name: string, check: (candidate: string) => Promise, reprompt: (message: string) => Promise) => Promise; declare const preflightInit: (accountApiKey: string, plan: InitPlan) => Promise; declare const provisionInit: (input: ProvisionInput) => Promise; //#endregion export { EdgeProvisionInput, Ledger, LedgerEntry, NameCheck, NameResolution, NameStatus, PreflightIssue, PreflightResult, ProvisionInput, ProvisionResult, ResourceDisposition, ResourceKind, StorageProvisionResult, StreamProvisionResult, checkLibraryName, checkStorageName, createLedger, preflightInit, provisionInit, resolveAvailableName }; //# sourceMappingURL=provision.d.ts.map