import { CreateProposalParams, ImmutableGovernanceContext, MutableGovernanceContext, ProposalStatus, ProposalStoreData, QuorumMode, StoreInstance } from '../types';
import { BaseStoreWithInstance } from './base';
import { Proposal } from './instances';
export declare class ProposalStore extends BaseStoreWithInstance<ProposalStoreData> {
    verifyCreateProposal(ctx: ImmutableGovernanceContext, params: CreateProposalParams): Promise<void>;
    createProposal(ctx: MutableGovernanceContext, params: CreateProposalParams, verify?: boolean): Promise<void>;
    getMutableProposal(ctx: MutableGovernanceContext, proposalId: number): Promise<StoreInstance<Proposal>>;
    getImmutableProposal(ctx: ImmutableGovernanceContext, proposalId: number): Promise<StoreInstance<Proposal>>;
    getKey(proposalId: number): Buffer<ArrayBuffer>;
    schema: import("@swaptoshi/utils/dist/types").TypedSchema<ProposalStoreData>;
    protected readonly default: {
        title: string;
        summary: string;
        deposited: bigint;
        author: Buffer<ArrayBuffer>;
        turnout: {
            for: bigint;
            against: bigint;
            abstain: bigint;
        };
        parameters: {
            createdHeight: number;
            startHeight: number;
            quorumHeight: number;
            endHeight: number;
            executionHeight: number;
            boostFactor: number;
            maxBoostDuration: number;
            enableBoosting: boolean;
            enableTurnoutBias: boolean;
            quorumMode: QuorumMode;
            quorumTreshold: string;
        };
        voteSummary: {
            for: bigint;
            against: bigint;
            abstain: bigint;
        };
        status: ProposalStatus;
        actions: never[];
        attributes: never[];
    };
}
