import { Network } from '@btc-vision/bitcoin';
import { Feature, Features } from './Features.js';
export declare abstract class Generator {
    static readonly DATA_CHUNK_SIZE: number;
    static readonly MAGIC: Buffer;
    protected readonly senderPubKey: Buffer;
    protected readonly xSenderPubKey: Buffer;
    protected readonly contractSaltPubKey?: Buffer;
    protected readonly network: Network;
    protected constructor(senderPubKey: Buffer, contractSaltPubKey?: Buffer, network?: Network);
    buildHeader(features: Features[]): Buffer;
    getHeader(maxPriority: bigint, features?: Features[]): Buffer;
    abstract compile(...args: unknown[]): Buffer;
    protected splitBufferIntoChunks(buffer: Buffer, chunkSize?: number): Array<Buffer[]>;
    protected encodeFeature(feature: Feature<Features>): Buffer[][];
    private encodeAccessListFeature;
}
