import type { DriverInterface } from "../driver"; import type { ContentsZip } from "../contents"; import type { ValidationResult } from "./validate"; export type ManifestPermission = { permission: string; scope?: string; }; export type ManifestPermissions = ManifestPermission[]; export interface ManifestStaticInterface { /** * Parse JSON object to Manifest * @param manifestJson */ parseJson(manifestJson: string): ManifestInterface; /** * Load and parse JSON file to Manifest */ loadJsonFile(jsonFilePath: string, driver?: DriverInterface): Promise; } export interface ManifestInterface { /** * Validate Manifest * @param driver If set, also validate file existence and file size. */ validate(driver?: DriverInterface): Promise; /** * Returns files described in a Manifest */ sourceList(): string[]; /** * Generate contents.zip from Manifest and Driver * @param driver */ generateContentsZip(driver: DriverInterface): Promise; get manifestVersion(): 1 | 2; get name(): string; get version(): number | string; get description(): string | undefined; get homepageUrl(): string | undefined; get sandbox(): boolean | undefined; get allowedHosts(): string[] | undefined; get permissions(): ManifestPermissions | undefined; /** * Returns JSON object represents Manifest raw object. */ get json(): object; }