import { Equal, FastCheck, Hash, Inspectable, Schema } from "effect";
import * as CBOR from "./CBOR.js";
import * as Coin from "./Coin.js";
import * as CommitteeColdCredential from "./CommitteeColdCredential.js";
import * as Constitution from "./Constitution.js";
import * as EpochNo from "./EpochNo.js";
import * as ProtocolParamUpdate from "./ProtocolParamUpdate.js";
import * as ProtocolVersion from "./ProtocolVersion.js";
import * as RewardAccount from "./RewardAccount.js";
import * as ScriptHash from "./ScriptHash.js";
import * as TransactionHash from "./TransactionHash.js";
import * as UnitInterval from "./UnitInterval.js";
declare const GovActionId_base: Schema.TaggedClass<GovActionId, "GovActionId", {
    readonly _tag: Schema.tag<"GovActionId">;
} & {
    transactionId: typeof TransactionHash.TransactionHash;
    govActionIndex: Schema.refine<bigint, typeof Schema.BigInt>;
}>;
/**
 * GovActionId schema representing a governance action identifier.
 * ```
 * According to Conway CDDL: gov_action_id = [transaction_id : transaction_id, gov_action_index : uint .size 2]
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare class GovActionId extends GovActionId_base {
    toJSON(): {
        _tag: "GovActionId";
        transactionId: TransactionHash.TransactionHash;
        govActionIndex: bigint;
    };
    toString(): string;
    [Inspectable.NodeInspectSymbol](): unknown;
    [Equal.symbol](that: unknown): boolean;
    [Hash.symbol](): number;
}
/**
 * CDDL schema for GovActionId tuple structure.
 * ```
 * For CBOR encoding: [transaction_id: bytes, gov_action_index: uint]
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const GovActionIdCDDL: Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>;
/**
 * CDDL transformation schema for GovActionId.
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const GovActionIdFromCDDL: Schema.transformOrFail<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>, Schema.SchemaClass<GovActionId, GovActionId, never>, never>;
declare const ParameterChangeAction_base: Schema.TaggedClass<ParameterChangeAction, "ParameterChangeAction", {
    readonly _tag: Schema.tag<"ParameterChangeAction">;
} & {
    govActionId: Schema.NullOr<typeof GovActionId>;
    protocolParamUpdate: typeof ProtocolParamUpdate.ProtocolParamUpdate;
    policyHash: Schema.NullOr<typeof ScriptHash.ScriptHash>;
}>;
/**
 * Parameter change governance action schema.
 * ```
 * According to Conway CDDL: parameter_change_action =
 *   (0, gov_action_id/ nil, protocol_param_update, policy_hash/ nil)
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare class ParameterChangeAction extends ParameterChangeAction_base {
    toJSON(): {
        _tag: "ParameterChangeAction";
        govActionId: GovActionId | null;
        protocolParamUpdate: ProtocolParamUpdate.ProtocolParamUpdate;
        policyHash: ScriptHash.ScriptHash | null;
    };
    toString(): string;
    [Inspectable.NodeInspectSymbol](): unknown;
    [Equal.symbol](that: unknown): boolean;
    [Hash.symbol](): number;
}
/**
 * CDDL schema for ParameterChangeAction tuple structure.
 * Maps to: (0, gov_action_id/ nil, protocol_param_update, policy_hash/ nil)
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const ParameterChangeActionCDDL: Schema.Tuple<[Schema.Literal<[0n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.MapFromSelf<typeof Schema.BigIntFromSelf, Schema.Schema<CBOR.CBOR, CBOR.CBOR, never>>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>]>;
/**
 * CDDL transformation schema for ParameterChangeAction.
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const ParameterChangeActionFromCDDL: Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[0n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.MapFromSelf<typeof Schema.BigIntFromSelf, Schema.Schema<CBOR.CBOR, CBOR.CBOR, never>>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>]>, Schema.SchemaClass<ParameterChangeAction, ParameterChangeAction, never>, never>;
declare const HardForkInitiationAction_base: Schema.TaggedClass<HardForkInitiationAction, "HardForkInitiationAction", {
    readonly _tag: Schema.tag<"HardForkInitiationAction">;
} & {
    govActionId: Schema.NullOr<typeof GovActionId>;
    protocolVersion: typeof ProtocolVersion.ProtocolVersion;
}>;
/**
 * Hard fork initiation governance action schema.
 * ```
 * According to Conway CDDL: hard_fork_initiation_action =
 *   (1, gov_action_id/ nil, protocol_version, policy_hash/ nil)
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare class HardForkInitiationAction extends HardForkInitiationAction_base {
    toJSON(): {
        _tag: "HardForkInitiationAction";
        govActionId: GovActionId | null;
        protocolVersion: ProtocolVersion.ProtocolVersion;
    };
    toString(): string;
    [Inspectable.NodeInspectSymbol](): unknown;
    [Equal.symbol](that: unknown): boolean;
    [Hash.symbol](): number;
}
/**
 * CDDL schema for HardForkInitiationAction tuple structure.
 * ```
 * Maps to: (1, gov_action_id/ nil, protocol_version, policy_hash/ nil)
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const HardForkInitiationActionCDDL: Schema.Tuple<[Schema.Literal<[1n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Tuple2<typeof Schema.BigIntFromSelf, typeof Schema.BigIntFromSelf>]>;
/**
 * CDDL transformation schema for HardForkInitiationAction.
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const HardForkInitiationActionFromCDDL: Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[1n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Tuple2<typeof Schema.BigIntFromSelf, typeof Schema.BigIntFromSelf>]>, Schema.SchemaClass<HardForkInitiationAction, HardForkInitiationAction, never>, never>;
declare const TreasuryWithdrawalsAction_base: Schema.TaggedClass<TreasuryWithdrawalsAction, "TreasuryWithdrawalsAction", {
    readonly _tag: Schema.tag<"TreasuryWithdrawalsAction">;
} & {
    withdrawals: Schema.Map$<Schema.transformOrFail<typeof Schema.String, Schema.SchemaClass<RewardAccount.RewardAccount, RewardAccount.RewardAccount, never>, never>, Schema.refine<bigint, typeof Schema.BigInt>>;
    policyHash: Schema.NullOr<typeof ScriptHash.ScriptHash>;
}>;
/**
 * Treasury withdrawals governance action schema.
 * ```
 * According to Conway CDDL: treasury_withdrawals_action =
 *   (2, { * reward_account => coin }, policy_hash/ nil)
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare class TreasuryWithdrawalsAction extends TreasuryWithdrawalsAction_base {
    toJSON(): {
        _tag: "TreasuryWithdrawalsAction";
        withdrawals: Map<RewardAccount.RewardAccount, bigint>;
        policyHash: ScriptHash.ScriptHash | null;
    };
    toString(): string;
    [Inspectable.NodeInspectSymbol](): unknown;
    [Equal.symbol](that: unknown): boolean;
    [Hash.symbol](): number;
}
/**
 * CDDL schema for TreasuryWithdrawalsAction tuple structure.
 * ```
 * Maps to: (2, { * reward_account => coin }, policy_hash/ nil)
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const TreasuryWithdrawalsActionCDDL: Schema.Tuple<[Schema.Literal<[2n]>, Schema.MapFromSelf<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>]>;
/**
 * CDDL transformation schema for TreasuryWithdrawalsAction.
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const TreasuryWithdrawalsActionFromCDDL: Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[2n]>, Schema.MapFromSelf<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>]>, Schema.SchemaClass<TreasuryWithdrawalsAction, TreasuryWithdrawalsAction, never>, never>;
declare const NoConfidenceAction_base: Schema.TaggedClass<NoConfidenceAction, "NoConfidenceAction", {
    readonly _tag: Schema.tag<"NoConfidenceAction">;
} & {
    govActionId: Schema.NullOr<typeof GovActionId>;
}>;
/**
 * No confidence governance action schema.
 * ```
 * According to Conway CDDL: no_confidence =
 *   (3, gov_action_id/ nil)
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare class NoConfidenceAction extends NoConfidenceAction_base {
    toJSON(): {
        _tag: "NoConfidenceAction";
        govActionId: GovActionId | null;
    };
    toString(): string;
    [Inspectable.NodeInspectSymbol](): unknown;
    [Equal.symbol](that: unknown): boolean;
    [Hash.symbol](): number;
}
/**
 * CDDL schema for NoConfidenceAction tuple structure.
 * Maps to: (3, gov_action_id/ nil)
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const NoConfidenceActionCDDL: Schema.Tuple2<Schema.Literal<[3n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>>;
/**
 * CDDL transformation schema for NoConfidenceAction.
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const NoConfidenceActionFromCDDL: Schema.transformOrFail<Schema.Tuple2<Schema.Literal<[3n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>>, Schema.SchemaClass<NoConfidenceAction, NoConfidenceAction, never>, never>;
declare const UpdateCommitteeAction_base: Schema.TaggedClass<UpdateCommitteeAction, "UpdateCommitteeAction", {
    readonly _tag: Schema.tag<"UpdateCommitteeAction">;
} & {
    govActionId: Schema.NullOr<typeof GovActionId>;
    membersToRemove: Schema.Array$<Schema.Union<[typeof import("./KeyHash.js").KeyHash, typeof ScriptHash.ScriptHash]>>;
    membersToAdd: Schema.Map$<Schema.Union<[typeof import("./KeyHash.js").KeyHash, typeof ScriptHash.ScriptHash]>, Schema.refine<bigint, typeof Schema.BigInt>>;
    threshold: typeof UnitInterval.UnitInterval;
}>;
/**
 * Update committee governance action schema.
 * ```
 * According to Conway CDDL: update_committee =
 *   (4, gov_action_id/ nil, set<committee_cold_credential>, { * committee_cold_credential => committee_hot_credential }, unit_interval)
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare class UpdateCommitteeAction extends UpdateCommitteeAction_base {
    toJSON(): {
        _tag: "UpdateCommitteeAction";
        govActionId: GovActionId | null;
        membersToRemove: readonly (import("./KeyHash.js").KeyHash | ScriptHash.ScriptHash)[];
        membersToAdd: Map<import("./KeyHash.js").KeyHash | ScriptHash.ScriptHash, bigint>;
        threshold: UnitInterval.UnitInterval;
    };
    toString(): string;
    [Inspectable.NodeInspectSymbol](): unknown;
    [Equal.symbol](that: unknown): boolean;
    [Hash.symbol](): number;
}
/**
 * CDDL schema for UpdateCommitteeAction tuple structure.
 * ```
 * Maps to: (4, gov_action_id/ nil, set<committee_cold_credential>, { * committee_cold_credential => committee_hot_credential }, unit_interval)
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const UpdateCommitteeActionCDDL: Schema.Tuple<[Schema.Literal<[4n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Union<[Schema.TaggedStruct<"Tag", {
    tag: Schema.Literal<[258]>;
    value: Schema.Array$<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>>;
}>, Schema.Array$<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>>]>, Schema.MapFromSelf<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>, typeof Schema.BigIntFromSelf>, Schema.TaggedStruct<"Tag", {
    tag: Schema.Literal<[30]>;
    value: Schema.Tuple2<typeof Schema.BigIntFromSelf, typeof Schema.BigIntFromSelf>;
}>]>;
/**
 * CDDL transformation schema for UpdateCommitteeAction.
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const UpdateCommitteeActionFromCDDL: Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[4n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Union<[Schema.TaggedStruct<"Tag", {
    tag: Schema.Literal<[258]>;
    value: Schema.Array$<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>>;
}>, Schema.Array$<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>>]>, Schema.MapFromSelf<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>, typeof Schema.BigIntFromSelf>, Schema.TaggedStruct<"Tag", {
    tag: Schema.Literal<[30]>;
    value: Schema.Tuple2<typeof Schema.BigIntFromSelf, typeof Schema.BigIntFromSelf>;
}>]>, Schema.SchemaClass<UpdateCommitteeAction, UpdateCommitteeAction, never>, never>;
declare const NewConstitutionAction_base: Schema.TaggedClass<NewConstitutionAction, "NewConstitutionAction", {
    readonly _tag: Schema.tag<"NewConstitutionAction">;
} & {
    govActionId: Schema.NullOr<typeof GovActionId>;
    constitution: typeof Constitution.Constitution;
}>;
/**
 * New constitution governance action schema.
 * According to Conway CDDL: new_constitution =
 *   (5, gov_action_id/ nil, constitution)
 *
 * @since 2.0.0
 * @category schemas
 */
export declare class NewConstitutionAction extends NewConstitutionAction_base {
    toJSON(): {
        _tag: "NewConstitutionAction";
        govActionId: GovActionId | null;
        constitution: Constitution.Constitution;
    };
    toString(): string;
    [Inspectable.NodeInspectSymbol](): unknown;
    [Equal.symbol](that: unknown): boolean;
    [Hash.symbol](): number;
}
/**
 * CDDL schema for NewConstitutionAction tuple structure.
 * ```
 * Maps to: (5, gov_action_id/ nil, constitution)
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const NewConstitutionActionCDDL: Schema.Tuple<[Schema.Literal<[5n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Tuple2<Schema.Tuple2<typeof Schema.String, typeof Schema.Uint8ArrayFromSelf>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>>]>;
/**
 * CDDL transformation schema for NewConstitutionAction.
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const NewConstitutionActionFromCDDL: Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[5n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Tuple2<Schema.Tuple2<typeof Schema.String, typeof Schema.Uint8ArrayFromSelf>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>>]>, Schema.SchemaClass<NewConstitutionAction, NewConstitutionAction, never>, never>;
declare const InfoAction_base: Schema.TaggedClass<InfoAction, "InfoAction", {
    readonly _tag: Schema.tag<"InfoAction">;
}>;
/**
 * Info governance action schema.
 * ```
 * According to Conway CDDL: info_action = (6)
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare class InfoAction extends InfoAction_base {
    toJSON(): {
        _tag: "InfoAction";
    };
    toString(): string;
    [Inspectable.NodeInspectSymbol](): unknown;
    [Equal.symbol](that: unknown): boolean;
    [Hash.symbol](): number;
}
/**
 * CDDL schema for InfoAction tuple structure.
 * Maps to: (6)
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const InfoActionCDDL: Schema.Tuple<[Schema.Literal<[6n]>]>;
/**
 * CDDL transformation schema for InfoAction.
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const InfoActionFromCDDL: Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[6n]>]>, Schema.SchemaClass<InfoAction, InfoAction, never>, never>;
/**
 * GovernanceAction union schema based on Conway CDDL specification.
 *
 * ```
 * governance_action =
 *   [ 0, parameter_change_action ]
 * / [ 1, hard_fork_initiation_action ]
 * / [ 2, treasury_withdrawals_action ]
 * / [ 3, no_confidence ]
 * / [ 4, update_committee ]
 * / [ 5, new_constitution ]
 * / [ 6, info_action ]
 * ```
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const GovernanceAction: Schema.Union<[typeof ParameterChangeAction, typeof HardForkInitiationAction, typeof TreasuryWithdrawalsAction, typeof NoConfidenceAction, typeof UpdateCommitteeAction, typeof NewConstitutionAction, typeof InfoAction]>;
/**
 * Type alias for GovernanceAction.
 *
 * @since 2.0.0
 * @category model
 */
export type GovernanceAction = Schema.Schema.Type<typeof GovernanceAction>;
/**
 * CDDL schema for GovernanceAction tuple structure.
 * Maps action types to their data according to Conway specification.
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const CDDLSchema: Schema.Union<[Schema.Tuple<[Schema.Literal<[0n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.MapFromSelf<typeof Schema.BigIntFromSelf, Schema.Schema<CBOR.CBOR, CBOR.CBOR, never>>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>]>, Schema.Tuple<[Schema.Literal<[1n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Tuple2<typeof Schema.BigIntFromSelf, typeof Schema.BigIntFromSelf>]>, Schema.Tuple<[Schema.Literal<[2n]>, Schema.MapFromSelf<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>]>, Schema.Tuple2<Schema.Literal<[3n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>>, Schema.Tuple<[Schema.Literal<[4n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Union<[Schema.TaggedStruct<"Tag", {
    tag: Schema.Literal<[258]>;
    value: Schema.Array$<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>>;
}>, Schema.Array$<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>>]>, Schema.MapFromSelf<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>, typeof Schema.BigIntFromSelf>, Schema.TaggedStruct<"Tag", {
    tag: Schema.Literal<[30]>;
    value: Schema.Tuple2<typeof Schema.BigIntFromSelf, typeof Schema.BigIntFromSelf>;
}>]>, Schema.Tuple<[Schema.Literal<[5n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Tuple2<Schema.Tuple2<typeof Schema.String, typeof Schema.Uint8ArrayFromSelf>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>>]>, Schema.Tuple<[Schema.Literal<[6n]>]>]>;
/**
 * CDDL transformation schema for GovernanceAction.
 *
 * @since 2.0.0
 * @category schemas
 */
export declare const FromCDDL: Schema.Union<[Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[0n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.MapFromSelf<typeof Schema.BigIntFromSelf, Schema.Schema<CBOR.CBOR, CBOR.CBOR, never>>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>]>, Schema.SchemaClass<ParameterChangeAction, ParameterChangeAction, never>, never>, Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[1n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Tuple2<typeof Schema.BigIntFromSelf, typeof Schema.BigIntFromSelf>]>, Schema.SchemaClass<HardForkInitiationAction, HardForkInitiationAction, never>, never>, Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[2n]>, Schema.MapFromSelf<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>]>, Schema.SchemaClass<TreasuryWithdrawalsAction, TreasuryWithdrawalsAction, never>, never>, Schema.transformOrFail<Schema.Tuple2<Schema.Literal<[3n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>>, Schema.SchemaClass<NoConfidenceAction, NoConfidenceAction, never>, never>, Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[4n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Union<[Schema.TaggedStruct<"Tag", {
    tag: Schema.Literal<[258]>;
    value: Schema.Array$<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>>;
}>, Schema.Array$<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>>]>, Schema.MapFromSelf<Schema.Tuple2<Schema.Literal<[0n, 1n]>, typeof Schema.Uint8ArrayFromSelf>, typeof Schema.BigIntFromSelf>, Schema.TaggedStruct<"Tag", {
    tag: Schema.Literal<[30]>;
    value: Schema.Tuple2<typeof Schema.BigIntFromSelf, typeof Schema.BigIntFromSelf>;
}>]>, Schema.SchemaClass<UpdateCommitteeAction, UpdateCommitteeAction, never>, never>, Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[5n]>, Schema.NullOr<Schema.Tuple2<typeof Schema.Uint8ArrayFromSelf, typeof Schema.BigIntFromSelf>>, Schema.Tuple2<Schema.Tuple2<typeof Schema.String, typeof Schema.Uint8ArrayFromSelf>, Schema.NullOr<typeof Schema.Uint8ArrayFromSelf>>]>, Schema.SchemaClass<NewConstitutionAction, NewConstitutionAction, never>, never>, Schema.transformOrFail<Schema.Tuple<[Schema.Literal<[6n]>]>, Schema.SchemaClass<InfoAction, InfoAction, never>, never>]>;
/**
 * FastCheck arbitrary for GovernanceAction.
 *
 * @since 2.0.0
 * @category arbitrary
 */
export declare const infoArbitrary: FastCheck.Arbitrary<InfoAction>;
export declare const govActionIdArbitrary: FastCheck.Arbitrary<GovActionId>;
export declare const parameterChangeArbitrary: FastCheck.Arbitrary<ParameterChangeAction>;
export declare const hardForkInitiationArbitrary: FastCheck.Arbitrary<HardForkInitiationAction>;
export declare const treasuryWithdrawalsArbitrary: FastCheck.Arbitrary<TreasuryWithdrawalsAction>;
export declare const noConfidenceArbitrary: FastCheck.Arbitrary<NoConfidenceAction>;
export declare const updateCommitteeArbitrary: FastCheck.Arbitrary<UpdateCommitteeAction>;
export declare const newConstitutionArbitrary: FastCheck.Arbitrary<NewConstitutionAction>;
export declare const arbitrary: FastCheck.Arbitrary<GovernanceAction>;
/**
 * Check if a value is a valid GovernanceAction.
 *
 * @since 2.0.0
 * @category predicates
 */
export declare const is: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions | number) => u is ParameterChangeAction | HardForkInitiationAction | TreasuryWithdrawalsAction | NoConfidenceAction | UpdateCommitteeAction | NewConstitutionAction | InfoAction;
/**
 * Type guards for each governance action variant.
 *
 * @since 2.0.0
 * @category type guards
 */
export declare const isParameterChangeAction: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions | number) => u is ParameterChangeAction;
export declare const isHardForkInitiationAction: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions | number) => u is HardForkInitiationAction;
export declare const isTreasuryWithdrawalsAction: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions | number) => u is TreasuryWithdrawalsAction;
export declare const isNoConfidenceAction: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions | number) => u is NoConfidenceAction;
export declare const isUpdateCommitteeAction: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions | number) => u is UpdateCommitteeAction;
export declare const isNewConstitutionAction: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions | number) => u is NewConstitutionAction;
export declare const isInfoAction: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions | number) => u is InfoAction;
/**
 * Pattern matching utility for GovernanceAction.
 *
 * @since 2.0.0
 * @category pattern matching
 */
export declare const match: <R>(action: GovernanceAction, patterns: {
    ParameterChangeAction: (govActionId: GovActionId | null, protocolParams: ProtocolParamUpdate.ProtocolParamUpdate, policyHash: ScriptHash.ScriptHash | null) => R;
    HardForkInitiationAction: (govActionId: GovActionId | null, protocolVersion: ProtocolVersion.ProtocolVersion) => R;
    TreasuryWithdrawalsAction: (withdrawals: Map<RewardAccount.RewardAccount, Coin.Coin>, policyHash: ScriptHash.ScriptHash | null) => R;
    NoConfidenceAction: (govActionId: GovActionId | null) => R;
    UpdateCommitteeAction: (govActionId: GovActionId | null, membersToRemove: ReadonlyArray<typeof CommitteeColdCredential.CommitteeColdCredential.Credential.Type>, membersToAdd: ReadonlyMap<typeof CommitteeColdCredential.CommitteeColdCredential.Credential.Type, EpochNo.EpochNo>, threshold: UnitInterval.UnitInterval) => R;
    NewConstitutionAction: (govActionId: GovActionId | null, constitution: Constitution.Constitution) => R;
    InfoAction: () => R;
}) => R;
/**
 * Parse GovernanceAction from CBOR hex string.
 *
 * @since 2.0.0
 * @category parsing
 */
export declare const fromCBORHex: (hex: string, options?: CBOR.CodecOptions) => GovernanceAction;
/**
 * Encode GovernanceAction to CBOR hex string.
 *
 * @since 2.0.0
 * @category encoding
 */
export declare const toCBORHex: (data: GovernanceAction, options?: CBOR.CodecOptions) => string;
/**
 * Parse GovernanceAction from CBOR bytes.
 *
 * @since 2.0.0
 * @category parsing
 */
export declare const fromCBOR: (bytes: Uint8Array, options?: CBOR.CodecOptions) => GovernanceAction;
/**
 * Encode GovernanceAction to CBOR bytes.
 *
 * @since 2.0.0
 * @category encoding
 */
export declare const toCBOR: (data: GovernanceAction, options?: CBOR.CodecOptions) => Uint8Array;
export {};
//# sourceMappingURL=GovernanceAction.d.ts.map