import { MessageHeader, MessageAddressTableLookup } from './index.js';
import { AccountKeysFromLookups } from './account-keys.js';
import { AddressLookupTableAccount } from '../programs/index.js';
import { TransactionInstruction } from '../transaction/index.js';
import { PublicKey } from '../publickey.js';
export declare type CompiledKeyMeta = {
    isSigner: boolean;
    isWritable: boolean;
    isInvoked: boolean;
};
declare type KeyMetaMap = Map<string, CompiledKeyMeta>;
export declare class CompiledKeys {
    payer: PublicKey;
    keyMetaMap: KeyMetaMap;
    constructor(payer: PublicKey, keyMetaMap: KeyMetaMap);
    static compile(instructions: Array<TransactionInstruction>, payer: PublicKey): CompiledKeys;
    getMessageComponents(): [MessageHeader, Array<PublicKey>];
    extractTableLookup(lookupTable: AddressLookupTableAccount): [MessageAddressTableLookup, AccountKeysFromLookups] | undefined;
}
export {};
