import { z } from 'zod';
export const CreateAccountResultSchema = z.object({
    address: z.string(),
    privateKey: z.string(),
});
export const RekeyAccountParamsSchema = z.object({
    sourceAddress: z.string(),
    targetAddress: z.string(),
});
export const RekeyAccountResultSchema = z.object({
    txId: z.string(),
    signedTxn: z.string(), // Base64 encoded signed transaction
});
export const AccountDetailsSchema = z.object({
    address: z.string(),
    amount: z.union([z.number(), z.bigint()]),
    assets: z.array(z.object({
        assetId: z.union([z.number(), z.bigint()]),
        amount: z.union([z.number(), z.bigint()]),
    })),
    authAddress: z.string().optional(),
});
export const TransactionInfoSchema = z.object({
    id: z.string(),
    type: z.string(),
    sender: z.string(),
    receiver: z.string().optional(),
    amount: z.union([z.number(), z.bigint()]).optional(),
    assetId: z.union([z.number(), z.bigint()]).optional(),
    timestamp: z.string(),
});
export const AssetHoldingSchema = z.object({
    assetId: z.union([z.number(), z.bigint()]),
    amount: z.union([z.number(), z.bigint()]),
    creator: z.string(),
    frozen: z.boolean(),
});
export const ApplicationStateSchema = z.object({
    appId: z.union([z.number(), z.bigint()]),
    globalState: z.record(z.any()),
    localState: z.record(z.any()).optional(),
});
