///
///
import { web3, BN } from "@coral-xyz/anchor";
export interface StorageConfigFields {
/** Storage costs in shades per GiB */
shadesPerGib: BN;
/** Total storage available (or remaining) */
storageAvailable: BN;
/** Pubkey of SHDW token account that holds storage fees/stake */
tokenAccount: web3.PublicKey;
/** Optional Admin 2 */
admin2: web3.PublicKey;
/** Uploader key, used to sign off on successful storage + CSAM scan */
uploader: web3.PublicKey;
/** Epoch at which mutable_account_fees turned on */
mutableFeeStartEpoch: number | null;
/** Mutable fee rate */
shadesPerGibPerEpoch: BN;
/** Basis points cranker gets from cranking */
crankBps: number;
/** Maximum size of a storage account */
maxAccountSize: BN;
/** Minimum size of a storage account */
minAccountSize: BN;
}
export interface StorageConfigJSON {
/** Storage costs in shades per GiB */
shadesPerGib: string;
/** Total storage available (or remaining) */
storageAvailable: string;
/** Pubkey of SHDW token account that holds storage fees/stake */
tokenAccount: string;
/** Optional Admin 2 */
admin2: string;
/** Uploader key, used to sign off on successful storage + CSAM scan */
uploader: string;
/** Epoch at which mutable_account_fees turned on */
mutableFeeStartEpoch: number | null;
/** Mutable fee rate */
shadesPerGibPerEpoch: string;
/** Basis points cranker gets from cranking */
crankBps: number;
/** Maximum size of a storage account */
maxAccountSize: string;
/** Minimum size of a storage account */
minAccountSize: string;
}
export declare class StorageConfig {
/** Storage costs in shades per GiB */
readonly shadesPerGib: BN;
/** Total storage available (or remaining) */
readonly storageAvailable: BN;
/** Pubkey of SHDW token account that holds storage fees/stake */
readonly tokenAccount: web3.PublicKey;
/** Optional Admin 2 */
readonly admin2: web3.PublicKey;
/** Uploader key, used to sign off on successful storage + CSAM scan */
readonly uploader: web3.PublicKey;
/** Epoch at which mutable_account_fees turned on */
readonly mutableFeeStartEpoch: number | null;
/** Mutable fee rate */
readonly shadesPerGibPerEpoch: BN;
/** Basis points cranker gets from cranking */
readonly crankBps: number;
/** Maximum size of a storage account */
readonly maxAccountSize: BN;
/** Minimum size of a storage account */
readonly minAccountSize: BN;
static readonly discriminator: Buffer;
static readonly layout: any;
constructor(fields: StorageConfigFields);
static fetch(c: web3.Connection, address: web3.PublicKey): Promise;
static fetchMultiple(c: web3.Connection, addresses: web3.PublicKey[]): Promise>;
static decode(data: Buffer): StorageConfig;
toJSON(): StorageConfigJSON;
static fromJSON(obj: StorageConfigJSON): StorageConfig;
}
//# sourceMappingURL=StorageConfig.d.ts.map