import { BytesLike } from 'ethers';
import { tSmartBCHAddress } from '.';
export declare enum ExecutorType {
    Short = 0,
    Long = 1
}
export declare type GovCreateType = {
    user: tSmartBCHAddress;
    targets: tSmartBCHAddress[];
    values: string[];
    signatures: string[];
    calldatas: BytesLike[];
    withDelegateCalls: boolean[];
    ipfsHash: BytesLike;
    executor: ExecutorType;
};
export declare type GovCancelType = {
    user: tSmartBCHAddress;
    proposalId: number;
};
export declare type GovQueueType = {
    user: tSmartBCHAddress;
    proposalId: number;
};
export declare type GovExecuteType = {
    user: tSmartBCHAddress;
    proposalId: number;
};
export declare type GovSubmitVoteType = {
    user: tSmartBCHAddress;
    proposalId: number;
    support: boolean;
};
export declare type GovSubmitVoteSignType = {
    user: tSmartBCHAddress;
    proposalId: number;
    support: boolean;
    signature: string;
};
export declare type GovSignVotingType = {
    user: tSmartBCHAddress;
    support: boolean;
    proposalId: number;
    nonce: number;
};
export declare type GovGetProposalsType = {
    skip: number;
    limit: number;
};
export declare type GovGetProposalType = {
    proposalId: number;
};
export declare type GovGetVotingSupplyType = {
    block: number;
    strategy: tSmartBCHAddress;
};
export declare type GovGetVotingAtBlockType = {
    user: tSmartBCHAddress;
    strategy: tSmartBCHAddress;
    block: number;
};
export declare type GovGetTokensVotingPower = {
    user: tSmartBCHAddress;
    tokens: tSmartBCHAddress[];
};
export declare type GovGetVoteOnProposal = {
    proposalId: string;
    user: tSmartBCHAddress;
};
