import type { EVM } from "../evm/types.js"; import type { Solana } from "../solana/types.js"; import type { Shape } from "./enums.js"; export type ContractMethod = { readonly contract: string; readonly createMethods: readonly string[]; readonly version: EVM.Version; }; export type ProgramMethod = { readonly program: string; readonly createMethods: readonly string[]; readonly version: Solana.Version; }; type BaseUnifiedShape = { readonly id: TId; readonly hasPredictableGas: boolean; readonly isDeprecated: boolean; readonly name: string; readonly evm: readonly ContractMethod[]; readonly solana?: readonly ProgramMethod[]; }; export type LockupShapeDefinition = BaseUnifiedShape; export type FlowShapeDefinition = Omit, "solana">; export type AirdropShapeDefinition = BaseUnifiedShape; export type LockupShape = `${Shape.Lockup}`; export type FlowShape = `${Shape.Flow}`; export type AirdropShape = `${Shape.Airdrops}`; export type LockupShapesRecord = { [K in Shape.Lockup]: LockupShapeDefinition; }; export type FlowShapesRecord = { [K in Shape.Flow]: FlowShapeDefinition; }; export type AirdropShapesRecord = { [K in Shape.Airdrops]: AirdropShapeDefinition; }; export type AnyShape = LockupShapeDefinition | FlowShapeDefinition | AirdropShapeDefinition; export type ShapeWithSolanaSupport = AnyShape & { readonly solana: readonly ProgramMethod[]; }; export declare const defineLockupShape: (id: TId, def: Omit, "id">) => LockupShapeDefinition; export declare const defineFlowShape: (id: TId, def: Omit, "id">) => FlowShapeDefinition; export declare const defineAirdropShape: (id: TId, def: Omit, "id">) => AirdropShapeDefinition; export {}; //# sourceMappingURL=types.d.ts.map