import { type ContextModule } from "@ledgerhq/context-module"; import { type ExecuteDeviceActionReturnType, type OpenAppDAError, type OpenAppDARequiredInteraction, type SendCommandInAppDAError, type UserInteractionRequired } from "@ledgerhq/device-management-kit"; import { type AppConfiguration } from "../model/AppConfiguration"; import { type Signature } from "../model/Signature"; import { type SolanaTransactionOptionalConfig } from "../model/SolanaTransactionOptionalConfig"; import { type Transaction } from "../model/Transaction"; import { type SolanaAppErrorCodes } from "../../internal/app-binder/command/utils/SolanaApplicationErrors"; import { type BlockhashService } from "../../internal/app-binder/services/BlockhashService"; import { type SolanaSignerFeaturesNames } from "../../internal/app-binder/SolanaApplicationResolver"; import { type SignClearSignDAStateStep } from "./SignClearSignDeviceActionTypes"; export declare const signTransactionDAStateSteps: Readonly<{ readonly OPEN_APP: "signer.sol.steps.openApp"; readonly GET_APP_CONFIG: "signer.sol.steps.getAppConfig"; readonly TRANSACTION_CHECKS_OPT_IN: "signer.sol.steps.transactionChecksOptIn"; readonly TRANSACTION_CHECKS_OPT_IN_RESULT: "signer.sol.steps.transactionChecksOptInResult"; readonly TRANSACTION_CHECKS_PROVIDE: "signer.sol.steps.transactionChecksProvide"; readonly INSPECT_TRANSACTION: "signer.sol.steps.inspectTransaction"; readonly GET_PUB_KEY: "signer.sol.steps.getPubKey"; readonly BUILD_BASIC_CLEAR_SIGN_CONTEXT: "signer.sol.steps.buildBasicClearSignContext"; readonly PROVIDE_BASIC_CLEAR_SIGN_CONTEXT: "signer.sol.steps.provideBasicClearSignContext"; readonly BUILD_GENERIC_CLEAR_SIGN_CONTEXT: "signer.sol.steps.buildGenericClearSignContext"; readonly PROVIDE_GENERIC_CLEAR_SIGN_CONTEXT: "signer.sol.steps.provideGenericClearSignContext"; readonly FINALIZE_GENERIC_CLEAR_SIGN: "signer.sol.steps.finalizeGenericClearSign"; readonly PROMPT_UI_DISPLAY: "signer.sol.steps.promptUiDisplay"; readonly SIGN_TRANSACTION: "signer.sol.steps.signTransaction"; readonly DELAYED_SIGN: "signer.sol.steps.delayedSign"; }>; /** * Which clear-signing path produced the signature. * `full` = device ran the merge engine * `srfc39-only` = partial CAL coverage, device auto-rendered per-instruction without merge * `none` = blind/legacy fallback (no instruction recognised or capability absent). */ export type ClearSignMode = "full" | "srfc39-only" | "none"; export type SignTransactionDAStateStep = (typeof signTransactionDAStateSteps)[keyof typeof signTransactionDAStateSteps] | SignClearSignDAStateStep; export type SignTransactionDAOutput = Signature; export type SignTransactionDAInput = { readonly derivationPath: string; readonly transaction: Transaction; readonly contextModule: ContextModule; readonly transactionOptions?: SolanaTransactionOptionalConfig; readonly solanaRPCURL?: string; readonly blockhashService?: BlockhashService; readonly disabledFeatures?: ReadonlyArray; }; export type SignTransactionDAError = OpenAppDAError | SendCommandInAppDAError; type SignTransactionDARequiredInteraction = UserInteractionRequired | OpenAppDARequiredInteraction; /** * The intermediate value shared by every sign-transaction step except the * TRANSACTION_CHECKS_OPT_IN_RESULT branch (which carries an extra `result`). The * clear-sign child machines emit exactly this shape, so the parent can fold * their snapshots into its own intermediate value without a cast. */ export type SignTransactionDASimpleIntermediateValue = { requiredUserInteraction: SignTransactionDARequiredInteraction; step: Exclude; }; export type SignTransactionDAIntermediateValue = SignTransactionDASimpleIntermediateValue | { requiredUserInteraction: UserInteractionRequired.None; step: typeof signTransactionDAStateSteps.TRANSACTION_CHECKS_OPT_IN_RESULT; result: boolean; }; export type SignTransactionDAInternalState = { readonly error: SignTransactionDAError | null; readonly signature: Signature | null; readonly appConfig: AppConfiguration | null; readonly messageBytes: Uint8Array; readonly serializedForTxCheck: Uint8Array | undefined; readonly clearSignPrepared: boolean; }; export type SignTransactionDAReturnType = ExecuteDeviceActionReturnType; export {}; //# sourceMappingURL=SignTransactionDeviceActionTypes.d.ts.map