import { Contract, SignerProvider, Address, Token, ContractState, TestContractResult, InputAsset, Asset, Fields, SignDeployContractTxResult } from "@alephium/web3";
export declare type _GovernanceV1Fields = {
    chainId: bigint;
    governanceChainId: bigint;
    governanceEmitterAddress: string;
    receivedSequence: bigint;
    messageFee: bigint;
    guardianSets: [string, string];
    guardianSetIndexes: [bigint, bigint];
    previousGuardianSetExpirationTimeMS: bigint;
};
export declare type _GovernanceV1State = _GovernanceV1Fields & Omit<ContractState, "fields">;
export declare class GovernanceV1 {
    static readonly contract: Contract;
    readonly address: Address;
    readonly contractId: string;
    readonly groupIndex: number;
    deployResult: SignDeployContractTxResult | undefined;
    private constructor();
    static deploy(signer: SignerProvider, chainId: bigint, governanceChainId: bigint, governanceEmitterAddress: string, receivedSequence: bigint, messageFee: bigint, guardianSets: [string, string], guardianSetIndexes: [bigint, bigint], previousGuardianSetExpirationTimeMS: bigint, _extraParams?: {
        initialAttoAlphAmount?: bigint;
        initialTokenAmounts?: Token[];
        issueTokenAmount?: bigint;
        gasAmount?: number;
        gasPrice?: bigint;
    }): Promise<GovernanceV1>;
    static connect(address: string, deployResult?: SignDeployContractTxResult): GovernanceV1;
    fetchState(): Promise<_GovernanceV1State>;
    static stateForTest(chainId: bigint, governanceChainId: bigint, governanceEmitterAddress: string, receivedSequence: bigint, messageFee: bigint, guardianSets: [string, string], guardianSetIndexes: [bigint, bigint], previousGuardianSetExpirationTimeMS: bigint, asset?: Asset, address?: string): ContractState;
    static testFoo(_initFields: _GovernanceV1Fields | Fields, _extraParams?: {
        group?: number;
        address?: string;
        initialAsset?: Asset;
        existingContracts?: ContractState[];
        inputAssets?: InputAsset[];
    }): Promise<Omit<TestContractResult, "returns"> & {
        returns: [];
    }>;
}
