import { BaseProvider } from '../providers/base'; import { Provider, Attribute, ProviderInfo, ResourceUnits, DecCoin } from '@cryptoandcoffee/akash-jsdk-protobuf'; import { CacheManager } from '../cache'; export interface OrderId { owner: string; dseq: string; gseq: number; oseq: number; } export interface BidId extends OrderId { provider: string; } export interface ProviderConfig { hostUri: string; attributes?: Array<{ key: string; value: string; }>; info?: { email?: string; website?: string; }; } export interface CreateProviderRequest { owner: string; hostUri: string; attributes: Attribute[]; info: ProviderInfo; } export interface UpdateProviderRequest { owner: string; hostUri?: string; attributes?: Attribute[]; info?: ProviderInfo; } export interface ProviderFilters { owner?: string; region?: string; tier?: string; audited?: boolean; } export interface ResourcePricing { cpu: DecCoin; memory: DecCoin; storage: DecCoin; } export interface ProviderCapacity { available: ResourceUnits; total: ResourceUnits; allocated: ResourceUnits; } export interface ManifestDeployment { deploymentId: string; manifest: Record; status: 'pending' | 'active' | 'failed' | 'closed'; } export declare class ProviderManager { private provider; private authHeader; private cache?; private readonly CACHE_TTL; constructor(provider: BaseProvider, cache?: CacheManager); /** * Set authorization header for provider API requests * Supports both JWT (Mainnet 14+) and certificate-based auth */ setAuthorizationHeader(header: string | null): void; /** * Get current authorization header */ getAuthorizationHeader(): string | null; createProvider(request: CreateProviderRequest): Promise; updateProvider(request: UpdateProviderRequest): Promise; deleteProvider(owner: string): Promise; getProvider(owner: string): Promise; listProviders(filters?: ProviderFilters): Promise; placeBid(orderId: OrderId, price: DecCoin, deposit: DecCoin): Promise; updateBidPricing(bidId: BidId, newPrice: DecCoin): Promise; getProviderCapacity(owner: string): Promise; updateResourcePricing(owner: string, pricing: ResourcePricing): Promise; deployManifest(deploymentId: string, manifest: Record): Promise; updateManifest(deploymentId: string, newManifest: Record): Promise; getManifestStatus(deploymentId: string): Promise; closeManifest(deploymentId: string): Promise; getProviderStatus(owner: string): Promise<{ owner: string; online: boolean; activeDeployments: number; totalCapacity: ResourceUnits; availableCapacity: ResourceUnits; lastSeen?: number; version?: string; }>; /** * Validate provider configuration */ validateProviderConfig(config: CreateProviderRequest): { valid: boolean; errors: string[]; }; } //# sourceMappingURL=provider.d.ts.map