import { Allo } from "../../Allo/Allo";
import { ConstructorArgs, DeployParams, TransactionData } from "../../Common/types";
import { PayoutSummary, Status } from "../types";
import { Allocation, InitializeParams, InitializeParamsGov, InitializeParamsHats, Recipient, RegisterData, SetAllocatorData } from "./types";
export declare class MicroGrantsStrategy {
    private client;
    private contract;
    private strategy;
    private poolId;
    private allo;
    constructor({ chain, rpc, address, poolId }: ConstructorArgs);
    setPoolId(poolId: bigint): Promise<void>;
    setContract(address: `0x${string}`): void;
    private checkPoolId;
    private checkStrategy;
    getNative(): Promise<string>;
    allocator(allocatorAddress: string): Promise<boolean>;
    allocated(allocatorAddress: string, recipientAddress: string): Promise<boolean>;
    allocationEndTime(): Promise<bigint>;
    allocationStartTime(): Promise<bigint>;
    approvalThreshold(): Promise<string>;
    getAllo(): Promise<Allo>;
    getPayouts(recipientIds: string[]): Promise<PayoutSummary[]>;
    getPoolAmount(): Promise<bigint>;
    getPoolId(): Promise<bigint>;
    getRecipient(recipientId: string): Promise<Recipient>;
    getRecipientStatus(recipientId: string): Promise<Status>;
    getStrategyId(): Promise<string>;
    isPoolActive(): Promise<boolean>;
    isValidAllocator(allocatorAddress: string): Promise<boolean>;
    recipientAllocations(recipientId: string, status: Status): Promise<string>;
    maxRequestedAmount(): Promise<bigint>;
    useRegistryAnchor(): Promise<boolean>;
    getHatsAddress(): Promise<`0x${string}`>;
    getHatId(): Promise<bigint>;
    getGovAddress(): Promise<`0x${string}`>;
    getSnapshotReference(): Promise<bigint>;
    getMinimumVotePower(): Promise<bigint>;
    getStrategyContractId(strategyContract: string): Promise<{
        strategyId: `0x${string}`;
    }>;
    getInitializeData(params: InitializeParams): Promise<`0x${string}`>;
    getInitializeDataHats(params: InitializeParamsHats): Promise<`0x${string}`>;
    getInitializeDataGov(params: InitializeParamsGov): Promise<`0x${string}`>;
    getDeployParams(strategyType: string): DeployParams;
    getBatchAllocationData(allocations: Allocation[]): TransactionData;
    getAllocationData(recipientId: `0x${string}`, status: Status): TransactionData;
    getRegisterRecipientData(data: RegisterData): TransactionData;
    getBatchRegisterRecipientData(data: RegisterData[]): TransactionData;
    getIncreasemaxRequestedAmountData(amount: bigint): TransactionData;
    getSetAllocatorData(data: SetAllocatorData): TransactionData;
    getBatchSetAllocatorData(data: SetAllocatorData[]): TransactionData;
    getUpdatePoolTimestampsData(allocationStartTime: bigint, allocationEndTime: bigint): TransactionData;
}
