import { Address } from '../../../node_modules/@btc-vision/transaction/build/index.js';
export interface IEpochMiner {
    readonly solution: Uint8Array;
    readonly publicKey: Address;
    readonly salt: Uint8Array;
    readonly graffiti?: Uint8Array;
}
export interface IEpoch {
    readonly epochNumber: bigint;
    readonly epochHash: Uint8Array;
    readonly epochRoot: Uint8Array;
    readonly startBlock: bigint;
    readonly endBlock: bigint;
    readonly difficultyScaled: bigint;
    readonly minDifficulty?: string;
    readonly targetHash: Uint8Array;
    readonly proposer: IEpochMiner;
    readonly proofs: readonly Uint8Array[];
}
export interface RawEpochMiner {
    readonly solution: string;
    readonly mldsaPublicKey: string;
    readonly legacyPublicKey: string;
    readonly salt: string;
    readonly graffiti?: string;
}
export interface RawEpoch {
    readonly epochNumber: string;
    readonly epochHash: string;
    readonly epochRoot: string;
    readonly startBlock: string;
    readonly endBlock: string;
    readonly difficultyScaled: string;
    readonly minDifficulty?: string;
    readonly targetHash: string;
    readonly proposer: RawEpochMiner;
    readonly proofs: readonly string[];
}
export interface RawEpochSubmission {
    readonly submissionTxId: string;
    readonly submissionTxHash: string;
    readonly submissionHash: string;
    readonly confirmedAt: string;
    readonly epochProposed: RawEpochMiner;
}
export interface IEpochSubmission {
    readonly submissionTxId: Uint8Array;
    readonly submissionTxHash: Uint8Array;
    readonly submissionHash: Uint8Array;
    readonly confirmedAt: string;
    readonly epochProposed: IEpochMiner;
}
export interface IEpochWithSubmissions extends IEpoch {
    readonly submissions?: readonly IEpochSubmission[];
}
export interface RawEpochWithSubmissions extends RawEpoch {
    readonly submissions?: readonly RawEpochSubmission[];
}
export interface RawEpochTemplate {
    readonly epochNumber: string;
    readonly epochTarget: string;
}
export interface IEpochTemplate {
    readonly epochNumber: bigint;
    readonly epochTarget: Uint8Array;
}
export declare enum SubmissionStatus {
    ACCEPTED = "accepted",
    REJECTED = "rejected"
}
export interface RawSubmittedEpoch {
    readonly epochNumber: string;
    readonly submissionHash: string;
    readonly difficulty: number;
    readonly timestamp: number | Date;
    readonly status: SubmissionStatus;
    readonly message?: string;
}
export interface ISubmittedEpoch {
    readonly epochNumber: bigint;
    readonly submissionHash: Uint8Array;
    readonly difficulty: number;
    readonly timestamp: Date;
    readonly status: SubmissionStatus;
    readonly message?: string;
}
