import type { FasedAgentPluginConfigSchema } from "fased/plugin-sdk";
export type SatMiningConfig = {
    enabled: boolean;
    drainOnly?: boolean;
    network: "local" | "devnet" | "mainnet-beta";
    riskMode: "conservative" | "balanced" | "aggressive" | "swarm";
    strategyPreset?: "spread" | "balanced" | "conviction" | "swarm" | "top_k" | "ranked" | "adaptive" | "crowd_aware" | "safe_fallback";
    strategyExecution?: "deterministic" | "auto";
    strategyMode?: "base" | "skill";
    commitLamports?: number;
    minSolBalanceLamports?: number;
    walletId?: string;
    role?: "miner" | "validator" | "admin";
    claimMode?: "auto" | "prompt" | "manual";
    payout?: boolean;
    skillConfig?: {
        enabled?: boolean;
        useAgentDefaultModel?: boolean;
        preferredSkillId?: string;
        preferredModelId?: string;
        fallbackToBaseOnFailure?: boolean;
        maxDecisionLatencyMs?: number;
    };
    automation?: {
        autoFinalizeEpoch?: boolean;
        autoClaim?: boolean;
        claimBatchCycles?: number;
        satSweep?: {
            enabled?: boolean;
            destinationWalletId?: string;
            destinationAddress?: string;
            mode?: "all" | "percentage";
            percentage?: number;
            minRaw?: string;
            keepRaw?: string;
        };
    };
    tokenConfig?: {
        programId?: string;
        bondProgramId?: string;
        mintAddress?: string;
        mintProgramId?: string;
    };
    plannerConfig?: {
        policyMode?: "ucb" | "thompson";
        explorationRatePpm?: number;
        minContextSamples?: number;
        priorSamples?: number;
        enableCapitalTierPolicies?: boolean;
    };
    federationHandle?: string;
    federationPeers?: string[];
    coordinationGroup?: string;
};
export declare const satMiningConfigJsonSchema: import("@sinclair/typebox").TObject<{
    enabled: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    drainOnly: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"local">, import("@sinclair/typebox").TLiteral<"devnet">, import("@sinclair/typebox").TLiteral<"mainnet-beta">]>>;
    riskMode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"conservative">, import("@sinclair/typebox").TLiteral<"balanced">, import("@sinclair/typebox").TLiteral<"aggressive">, import("@sinclair/typebox").TLiteral<"swarm">]>>;
    strategyPreset: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"spread">, import("@sinclair/typebox").TLiteral<"balanced">, import("@sinclair/typebox").TLiteral<"conviction">, import("@sinclair/typebox").TLiteral<"swarm">, import("@sinclair/typebox").TLiteral<"top_k">, import("@sinclair/typebox").TLiteral<"ranked">, import("@sinclair/typebox").TLiteral<"adaptive">, import("@sinclair/typebox").TLiteral<"crowd_aware">, import("@sinclair/typebox").TLiteral<"safe_fallback">]>>;
    strategyExecution: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"deterministic">, import("@sinclair/typebox").TLiteral<"auto">]>>;
    strategyMode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"base">, import("@sinclair/typebox").TLiteral<"skill">]>>;
    commitLamports: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
    minSolBalanceLamports: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
    walletId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    role: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"miner">, import("@sinclair/typebox").TLiteral<"validator">, import("@sinclair/typebox").TLiteral<"admin">]>>;
    claimMode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"auto">, import("@sinclair/typebox").TLiteral<"prompt">, import("@sinclair/typebox").TLiteral<"manual">]>>;
    payout: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    skillConfig: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        enabled: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        useAgentDefaultModel: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        preferredSkillId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
        preferredModelId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
        fallbackToBaseOnFailure: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        maxDecisionLatencyMs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
    }>>;
    automation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        autoFinalizeEpoch: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        autoClaim: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        claimBatchCycles: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
        satSweep: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            enabled: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            destinationWalletId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            destinationAddress: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            mode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"all">, import("@sinclair/typebox").TLiteral<"percentage">]>>;
            percentage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
            minRaw: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            keepRaw: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
        }>>;
    }>>;
    tokenConfig: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        programId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
        bondProgramId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
        mintAddress: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
        mintProgramId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    }>>;
    plannerConfig: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        policyMode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"ucb">, import("@sinclair/typebox").TLiteral<"thompson">]>>;
        explorationRatePpm: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
        minContextSamples: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
        priorSamples: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
        enableCapitalTierPolicies: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    }>>;
    federationHandle: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    federationPeers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
    coordinationGroup: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
export declare function resolveSatProgramId(config?: SatMiningConfig | null, env?: NodeJS.ProcessEnv): string;
export declare function resolveSatBondProgramId(config?: SatMiningConfig | null, env?: NodeJS.ProcessEnv): string;
export declare function resolveSatMintAddress(config?: SatMiningConfig | null, env?: NodeJS.ProcessEnv): string;
export declare function resolveSatMintProgramId(config?: SatMiningConfig | null, env?: NodeJS.ProcessEnv): string;
export declare function strategyPresetToRiskMode(preset: SatMiningConfig["strategyPreset"]): SatMiningConfig["riskMode"];
export declare function riskModeToStrategyPreset(mode: SatMiningConfig["riskMode"]): NonNullable<SatMiningConfig["strategyPreset"]>;
export declare function strategyExecutionToMode(execution: SatMiningConfig["strategyExecution"]): SatMiningConfig["strategyMode"];
export declare function strategyModeToExecution(mode: SatMiningConfig["strategyMode"]): NonNullable<SatMiningConfig["strategyExecution"]>;
export declare function parseSatMiningConfig(value: unknown): SatMiningConfig;
export declare function createSatMiningPluginConfigSchema(): FasedAgentPluginConfigSchema;
