export type CatalogAccessState = 'free' | 'paid-active' | 'trial' | 'locked' | 'expired' | 'over-quota' | 'payment-failed' | 'unknown'; export type CatalogSyncStatus = 'idle' | 'syncing' | 'synced' | 'queued' | 'stale' | 'failed' | 'capped'; export type CatalogStorageUnit = 'MB' | 'GB' | 'TB'; export interface DataCatalogInput { subscriptionId?: string | null; dataSourceId?: string | null; datastoreKey?: string | null; standardId: string; providerName: string; providerPeerId: string | null; providerPublicKey: string | null; remoteRows: number; localRows: number; pinnedRows: number; cachedBytes: number; storageCap: number; storageUnit: CatalogStorageUnit; syncStatus: string; nextSyncAttempt: string; lastSyncedAt: string | null; syncFilter: string; accessState?: CatalogAccessState; planLabel?: string | null; priceLabel?: string | null; renewalLabel?: string | null; quotaLabel?: string | null; } export interface DataCatalogRow { id: string; subscriptionId: string | null; dataSourceId: string | null; datastoreKey: string | null; provider: string; product: string; messageTypes: string[]; access: { state: CatalogAccessState; label: string; }; plan: { label: string; priceLabel: string; renewalLabel: string; quotaLabel: string; }; storage: { localRows: number; remoteRows: number; pinnedRows: number; cachedBytes: number; storageCap: number; storageUnit: CatalogStorageUnit; policyLabel: string; filterLabel: string; }; sync: { status: CatalogSyncStatus; label: string; nextAttempt: string; lastSyncedAt: string | null; }; providerPeerId: string | null; providerPublicKey: string | null; } export interface DataCatalogSummary { totalProducts: number; freeProducts: number; activePaidSubscriptions: number; trialSubscriptions: number; lockedProducts: number; issueCount: number; syncingProducts: number; syncedProducts: number; queuedProducts: number; localStorageBytes: number; pinnedRows: number; hasBillingData: boolean; billingMetricTitle: string; billingMetricValue: string; monthlySpendLabel: string; dataHealthLabel: string; } export interface DataOverviewStorageSegment { key: string; label: string; bytes: number; percent: number; } export type DataOverviewStorageGroup = 'provider' | 'messageType' | 'access'; export interface DataOverviewCoverageCell { messageType: string; accessState: CatalogAccessState; accessLabel: string; syncStatus: CatalogSyncStatus; syncLabel: string; localRows: number; remoteRows: number; cachedBytes: number; } export interface DataOverviewCoverageRow { provider: string; providerPeerId: string | null; providerPublicKey: string | null; cells: DataOverviewCoverageCell[]; } export interface DataOverviewProviderBar { provider: string; providerPeerId: string | null; providerPublicKey: string | null; localBytes: number; pinnedRows: number; products: number; activePaidSubscriptions: number; trialSubscriptions: number; planLabels: string[]; percent: number; } export interface DataOverviewVisuals { storageTotalBytes: number; storageSegments: DataOverviewStorageSegment[]; storageSegmentsByGroup: Record; coverageRows: DataOverviewCoverageRow[]; providerBars: DataOverviewProviderBar[]; monthlySpendLabel: string; } export interface DataBillingProviderRow { key: string; provider: string; providerPeerId: string | null; providerPublicKey: string | null; productCount: number; productLabel: string; priceLabel: string; renewalLabel: string; quotaLabel: string; } export type DataCatalogAccessFilter = 'all' | 'paid' | 'issues' | CatalogAccessState; export type DataCatalogSyncFilter = 'all' | 'issues' | CatalogSyncStatus; export type DataCatalogStorageFilter = 'all' | 'stored' | 'not-stored'; export interface DataCatalogFilters { query?: string; access?: DataCatalogAccessFilter; sync?: DataCatalogSyncFilter; storage?: DataCatalogStorageFilter; } export declare function buildDataCatalogRows(inputs: DataCatalogInput[]): DataCatalogRow[]; export declare function buildDataOverviewVisuals(rows: DataCatalogRow[], storageGroup?: DataOverviewStorageGroup): DataOverviewVisuals; export declare function filterDataCatalogRows(rows: DataCatalogRow[], filters?: DataCatalogFilters): DataCatalogRow[]; export declare function summarizeDataCatalog(rows: DataCatalogRow[]): DataCatalogSummary; export declare function catalogRowHasBillingData(row: DataCatalogRow): boolean; export declare function buildDataBillingProviderRows(rows: DataCatalogRow[]): DataBillingProviderRow[]; //# sourceMappingURL=data-catalog.d.ts.map