import type { AccountMeta, AccountSignerMeta, Address, Instruction, ReadonlyUint8Array, TransactionSigner } from '@solana/kit';
export type InstructionAccountMeta = AccountMeta | AccountSignerMeta;
export declare function readonlyAccount(address: Address): InstructionAccountMeta;
export declare function writableAccount(address: Address): InstructionAccountMeta;
export declare function readonlySigner(signer: TransactionSigner): InstructionAccountMeta;
/**
 * Marks an address as a required readonly signer without embedding a keypair.
 * Use this for update instructions where signing is deferred to the caller.
 */
export declare function readonlySignerAddress(address: Address): InstructionAccountMeta;
/**
 * Marks an address as a required writable signer without embedding a keypair.
 * Use this when the account must both sign and be mutated, but the keypair is
 * managed by the caller (e.g. the transaction payer for a SOL transfer).
 */
export declare function writableSignerAddress(address: Address): InstructionAccountMeta;
export declare function writableSigner(signer: TransactionSigner): InstructionAccountMeta;
export declare function buildInstruction(programAddress: Address, accounts: InstructionAccountMeta[], data: ReadonlyUint8Array): Instruction;
//# sourceMappingURL=utils.d.ts.map