import { Allo } from "../../Allo/Allo";
import { ConstructorArgs, DeployParams, Metadata, PayoutSummary, Recipient, Status, TransactionData } from "../../types";
import { Allocation, InitializeParams, Milestone, RegisterData } from "./types";
export declare class DirectGrantsStrategy {
    private client;
    private contract;
    private strategy;
    private poolId;
    private allo;
    constructor({ chain, rpc, address, poolId }: ConstructorArgs);
    getInitializeData(params: InitializeParams): `0x${string}`;
    getDeployParams(): DeployParams;
    setPoolId(poolId: bigint): Promise<void>;
    setContract(address: `0x${string}`): void;
    private checkPoolId;
    private checkStrategy;
    getNative(): Promise<string>;
    getAllocatedGrantAmount(): Promise<number>;
    getGrantAmountRequired(): Promise<boolean>;
    getMetadataRequired(): Promise<boolean>;
    getAllo(): Promise<Allo>;
    getPoolAmount(): Promise<number>;
    getPoolId(): Promise<number>;
    getRecipient(recipientId: string): Promise<Recipient>;
    getRecipientStatus(recipientId: string): Promise<Status>;
    getStrategyId(): Promise<string>;
    isPoolActive(): Promise<boolean>;
    isValidAllocator(allocatorAddress: string): Promise<boolean>;
    useRegistryAnchor(): Promise<boolean>;
    getMilestoneStatus(recipientId: `0x${string}`, milestoneId: number): Promise<Status>;
    getMilestones(recipientAddress: `0x${string}`): Promise<`0x${string}`>;
    getUpcomingMilestone(recipientAddress: `0x${string}`): Promise<any>;
    getPayouts(recipientIds: `0x${string}`[]): Promise<PayoutSummary[]>;
    getSetMilestonesData(recipientId: `0x${string}`, milestones: Milestone[]): TransactionData;
    getReviewSetMilestonesData(recipientId: `0x${string}`, status: Status, milestoneHash: `0x${string}`): TransactionData;
    getSubmitMilestonesData(recipientId: `0x${string}`, milestoneId: number, metadata: Metadata): TransactionData;
    getRejectMilestoneData(recipientId: `0x${string}`, milestoneId: number): TransactionData;
    getSetRecipientStatusToInReviewData(recipientIds: `0x${string}`[]): TransactionData;
    getSetPoolActiveData(flag: boolean): TransactionData;
    getRegisterRecipientData(data: RegisterData): TransactionData;
    getBatchRegisterRecipientData(data: RegisterData[]): TransactionData;
    getAllocationData(recipientId: `0x${string}`, status: Status, grantAmount: bigint): TransactionData;
    getBatchAllocationData(allocations: Allocation[]): TransactionData;
    getDistributeData(recipientIds: `0x${string}`[]): TransactionData;
    getUpdatePoolTimestampsData(registrationStartTime: bigint, registrationEndTime: bigint): TransactionData;
}
