import type { ChromeWebStoreConfig, ExtensionConfig } from './types'; /** Build the RS256 assertion Google exchanges for a short-lived OAuth token. */ export declare function chromeWebStoreServiceAccountAssertion(serviceAccount: GoogleServiceAccount, now?: unknown): string; /** Build, package, upload, and optionally submit an existing Chrome Web Store item. */ export declare function publishChromeExtension(config: ExtensionConfig, options: ChromeWebStorePublishOptions): Promise; export declare interface GoogleServiceAccount { client_email: string private_key: string token_uri?: string } export declare interface ChromeWebStoreAuth { accessToken?: string serviceAccountPath?: string } export declare interface ChromeWebStoreClientOptions extends ChromeWebStoreAuth { baseUrl?: string fetch?: typeof globalThis.fetch now?: () => number wait?: (milliseconds: number) => Promise } export declare interface ChromeWebStoreStatus { name: string itemId: string lastAsyncUploadState?: 'UPLOAD_STATE_UNSPECIFIED' | 'SUCCEEDED' | 'IN_PROGRESS' | 'FAILED' | 'NOT_FOUND' publishedItemRevisionStatus?: { state: string, distributionChannels?: Array<{ deployPercentage: number, crxVersion: string }> } submittedItemRevisionStatus?: { state: string, distributionChannels?: Array<{ deployPercentage: number, crxVersion: string }> } takenDown?: boolean warned?: boolean } export declare interface ChromeUploadResult { name: string itemId: string crxVersion?: string uploadState: 'UPLOAD_STATE_UNSPECIFIED' | 'SUCCEEDED' | 'IN_PROGRESS' | 'FAILED' | 'NOT_FOUND' } export declare interface ChromePublishResult { name: string itemId: string state: string warningInfo?: { warnings?: Array<{ reason: string, description: string }> } } export declare interface ChromeDeferredPublishResult { state: string submittedVersion?: string reason: string } export declare interface ChromePublishedVersionResult { state: string version: string reason: string } export declare interface ChromeWebStorePublishResult { packagePath: string upload?: ChromeUploadResult publish?: ChromePublishResult deferred?: ChromeDeferredPublishResult alreadyPublished?: ChromePublishedVersionResult } export declare interface ChromeWebStorePublishOptions extends ChromeWebStoreClientOptions { version: string cwd?: string packagePath?: string uploadOnly?: boolean blockOnWarnings?: boolean } export declare class ChromeWebStoreClient { constructor(options?: ChromeWebStoreClientOptions); fetchStatus(config: ChromeWebStoreConfig): Promise; upload(config: ChromeWebStoreConfig, packagePath: string): Promise; publish(config: ChromeWebStoreConfig, options?: { blockOnWarnings?: boolean }): Promise; waitForUpload(config: ChromeWebStoreConfig, maxAttempts?: number): Promise; }