/**
 * @fileoverview Maestro API schemas and transformation utilities
 * Internal module for Maestro provider implementation
 */
import { Schema } from "effect";
import * as CoreAssets from "../../../Assets.js";
import type { DatumOption } from "../../../DatumOption.js";
import type { Script } from "../../../Script.js";
import * as CoreUTxO from "../../../UTxO.js";
import type { EvalRedeemer } from "../../EvalRedeemer.js";
import type * as Provider from "../Provider.js";
/**
 * Maestro protocol parameters response schema
 */
export declare const MaestroProtocolParameters: Schema.Struct<{
    min_fee_coefficient: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
    min_fee_constant: Schema.Struct<{
        ada: Schema.Struct<{
            lovelace: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
        }>;
    }>;
    max_transaction_size: Schema.Struct<{
        bytes: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
    }>;
    max_value_size: Schema.Struct<{
        bytes: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
    }>;
    stake_credential_deposit: Schema.Struct<{
        ada: Schema.Struct<{
            lovelace: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
        }>;
    }>;
    stake_pool_deposit: Schema.Struct<{
        ada: Schema.Struct<{
            lovelace: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
        }>;
    }>;
    delegate_representative_deposit: Schema.Struct<{
        ada: Schema.Struct<{
            lovelace: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
        }>;
    }>;
    governance_action_deposit: Schema.Struct<{
        ada: Schema.Struct<{
            lovelace: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
        }>;
    }>;
    script_execution_prices: Schema.Struct<{
        memory: typeof Schema.String;
        cpu: typeof Schema.String;
    }>;
    max_execution_units_per_transaction: Schema.Struct<{
        memory: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
        cpu: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
    }>;
    min_utxo_deposit_coefficient: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
    collateral_percentage: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
    max_collateral_inputs: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
    min_fee_reference_scripts: Schema.Struct<{
        base: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
    }>;
    plutus_cost_models: Schema.Struct<{
        plutus_v1: Schema.Array$<typeof Schema.Number>;
        plutus_v2: Schema.Array$<typeof Schema.Number>;
        plutus_v3: Schema.Array$<typeof Schema.Number>;
    }>;
}>;
/**
 * Maestro asset schema
 */
export declare const MaestroAsset: Schema.Struct<{
    unit: typeof Schema.String;
    amount: typeof Schema.String;
}>;
/**
 * Maestro datum option schema
 */
export declare const MaestroDatumOption: Schema.Struct<{
    type: Schema.Literal<["hash", "inline"]>;
    hash: typeof Schema.String;
    bytes: Schema.NullOr<typeof Schema.String>;
    json: Schema.NullOr<typeof Schema.Unknown>;
}>;
/**
 * Maestro script schema
 */
export declare const MaestroScript: Schema.Struct<{
    hash: typeof Schema.String;
    type: Schema.Literal<["native", "plutusv1", "plutusv2", "plutusv3"]>;
    bytes: Schema.NullOr<typeof Schema.String>;
    json: Schema.NullOr<typeof Schema.Unknown>;
}>;
/**
 * Maestro asset UTxO reference schema (simplified response from /assets/{unit}/utxos)
 */
export declare const MaestroAssetUTxORef: Schema.Struct<{
    tx_hash: typeof Schema.String;
    index: typeof Schema.Number;
    address: typeof Schema.String;
    amount: typeof Schema.String;
}>;
/**
 * Maestro UTxO schema
 */
export declare const MaestroUTxO: Schema.Struct<{
    tx_hash: typeof Schema.String;
    index: typeof Schema.Number;
    assets: Schema.Array$<Schema.Struct<{
        unit: typeof Schema.String;
        amount: typeof Schema.String;
    }>>;
    address: typeof Schema.String;
    datum: Schema.NullOr<Schema.Struct<{
        type: Schema.Literal<["hash", "inline"]>;
        hash: typeof Schema.String;
        bytes: Schema.NullOr<typeof Schema.String>;
        json: Schema.NullOr<typeof Schema.Unknown>;
    }>>;
    reference_script: Schema.NullOr<Schema.Struct<{
        hash: typeof Schema.String;
        type: Schema.Literal<["native", "plutusv1", "plutusv2", "plutusv3"]>;
        bytes: Schema.NullOr<typeof Schema.String>;
        json: Schema.NullOr<typeof Schema.Unknown>;
    }>>;
}>;
/**
 * Maestro delegation/account response schema
 */
export declare const MaestroDelegation: Schema.Struct<{
    delegated_pool: Schema.NullOr<typeof Schema.String>;
    rewards_available: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
}>;
/**
 * Maestro transaction response schema (subset needed for output resolution)
 */
export declare const MaestroTransaction: Schema.Struct<{
    outputs: Schema.Array$<Schema.Struct<{
        tx_hash: typeof Schema.String;
        index: typeof Schema.Number;
        assets: Schema.Array$<Schema.Struct<{
            unit: typeof Schema.String;
            amount: typeof Schema.String;
        }>>;
        address: typeof Schema.String;
        datum: Schema.NullOr<Schema.Struct<{
            type: Schema.Literal<["hash", "inline"]>;
            hash: typeof Schema.String;
            bytes: Schema.NullOr<typeof Schema.String>;
            json: Schema.NullOr<typeof Schema.Unknown>;
        }>>;
        reference_script: Schema.NullOr<Schema.Struct<{
            hash: typeof Schema.String;
            type: Schema.Literal<["native", "plutusv1", "plutusv2", "plutusv3"]>;
            bytes: Schema.NullOr<typeof Schema.String>;
            json: Schema.NullOr<typeof Schema.Unknown>;
        }>>;
    }>>;
}>;
/**
 * Maestro timestamped response wrapper
 */
export declare const MaestroTimestampedResponse: <A>(dataSchema: Schema.Schema<A>) => Schema.Struct<{
    data: Schema.Schema<A, A, never>;
    last_updated: Schema.Struct<{
        timestamp: typeof Schema.String;
        block_slot: typeof Schema.Number;
        block_hash: typeof Schema.String;
    }>;
}>;
/**
 * Maestro paginated response wrapper
 */
export declare const MaestroPaginatedResponse: <A>(dataSchema: Schema.Schema<A>) => Schema.Struct<{
    data: Schema.Array$<Schema.Schema<A, A, never>>;
    next_cursor: Schema.NullOr<typeof Schema.String>;
    last_updated: Schema.Struct<{
        timestamp: typeof Schema.String;
        block_slot: typeof Schema.Number;
        block_hash: typeof Schema.String;
    }>;
}>;
export declare const MaestroEvaluateRedeemer: Schema.Struct<{
    redeemer_tag: Schema.Literal<["spend", "mint", "cert", "wdrl", "vote", "propose"]>;
    redeemer_index: typeof Schema.Number;
    ex_units: Schema.Struct<{
        mem: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
        steps: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
    }>;
}>;
export declare const MaestroEvalResult: Schema.Array$<Schema.Struct<{
    redeemer_tag: Schema.Literal<["spend", "mint", "cert", "wdrl", "vote", "propose"]>;
    redeemer_index: typeof Schema.Number;
    ex_units: Schema.Struct<{
        mem: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
        steps: Schema.Union<[typeof Schema.String, typeof Schema.Number]>;
    }>;
}>>;
export declare const parseDecimalFromRational: (rationalStr: string) => number;
/**
 * Transform Maestro protocol parameters to Evolution SDK format
 */
export declare const transformProtocolParameters: (maestroParams: Schema.Schema.Type<typeof MaestroProtocolParameters>) => Provider.ProtocolParameters;
/**
 * Transform Maestro datum option to Evolution SDK format
 */
export declare const transformDatumOption: (maestroDatum?: Schema.Schema.Type<typeof MaestroDatumOption> | null) => DatumOption | undefined;
/**
 * Transform Maestro assets array to Core Assets format
 */
export declare const transformAssets: (maestroAssets: ReadonlyArray<Schema.Schema.Type<typeof MaestroAsset>>) => CoreAssets.Assets;
/**
 * Transform Maestro script reference to Evolution SDK format
 */
export declare const transformScriptRef: (maestroScript?: Schema.Schema.Type<typeof MaestroScript> | null) => Script | undefined;
/**
 * Transform Maestro UTxO to Core UTxO format
 */
export declare const transformUTxO: (maestroUtxo: Schema.Schema.Type<typeof MaestroUTxO>) => CoreUTxO.UTxO;
/**
 * Transform Maestro delegation response to Evolution SDK format
 */
export declare const transformDelegation: (maestroDelegation: Schema.Schema.Type<typeof MaestroDelegation>) => Provider.Delegation;
/**
 * Transform Maestro evaluation result to Evolution SDK format
 */
export declare const transformEvaluationResult: (maestroResult: Schema.Schema.Type<typeof MaestroEvalResult>) => Array<EvalRedeemer>;
//# sourceMappingURL=Maestro.d.ts.map