import type { ec as EC } from 'elliptic'; import type { BigNumberish } from './utils/number'; export declare type KeyPair = EC.KeyPair; export declare type Signature = BigNumberish[]; export declare type GetContractAddressesResponse = { Starknet: string; GpsStatementVerifier: string; }; export declare type Status = 'NOT_RECEIVED' | 'RECEIVED' | 'PENDING' | 'ACCEPTED_ON_L2' | 'ACCEPTED_ON_L1' | 'REJECTED'; export declare type TransactionStatus = 'TRANSACTION_RECEIVED'; export declare type Type = 'DEPLOY' | 'INVOKE_FUNCTION'; export declare type EntryPointType = 'EXTERNAL'; export declare type CompressedProgram = string; export declare type AbiEntry = { name: string; type: 'felt' | 'felt*' | string; }; export declare type FunctionAbi = { inputs: AbiEntry[]; name: string; outputs: AbiEntry[]; stateMutability?: 'view'; type: 'function'; }; export declare type StructAbi = { members: (AbiEntry & { offset: number; })[]; name: string; size: number; type: 'struct'; }; export declare type Abi = FunctionAbi | StructAbi; export declare type EntryPointsByType = object; export declare type Program = object; export declare type BlockNumber = 'pending' | null | number; export declare type CompiledContract = { abi: Abi[]; entry_points_by_type: EntryPointsByType; program: Program; }; export declare type CompressedCompiledContract = Omit; export declare type DeployTransaction = { type: 'DEPLOY'; contract_definition: CompressedCompiledContract; contract_address_salt: BigNumberish; constructor_calldata: string[]; nonce?: BigNumberish; }; export declare type InvokeFunctionTransaction = { type: 'INVOKE_FUNCTION'; contract_address: string; signature?: Signature; entry_point_type?: EntryPointType; entry_point_selector: string; calldata?: string[]; nonce?: BigNumberish; }; export declare type CallContractTransaction = Omit; export declare type Transaction = DeployTransaction | InvokeFunctionTransaction; export declare type CallContractResponse = { result: string[]; }; export declare type GetBlockResponse = { block_number: number; state_root: string; block_hash: string; transactions: { [txHash: string]: Transaction; }; timestamp: number; transaction_receipts: { [txHash: string]: { block_hash: string; transaction_hash: string; l2_to_l1_messages: { to_address: string; payload: string[]; from_address: string; }[]; block_number: BlockNumber; status: Status; transaction_index: number; }; }; previous_block_hash: string; status: Status; }; export declare type GetCodeResponse = { bytecode: string[]; abi: Abi[]; }; export declare type GetTransactionStatusResponse = { tx_status: Status; block_hash: string; }; export declare type GetTransactionResponse = { status: Status; transaction: Transaction; block_hash: string; block_number: BlockNumber; transaction_index: number; transaction_hash: string; }; export declare type AddTransactionResponse = { code: TransactionStatus; transaction_hash: string; address?: string; }; export declare type TransactionReceipt = { status: Status; transaction_hash: string; transaction_index: number; block_hash: string; block_number: number; l2_to_l1_messages: string[]; events: string[]; };