import { Account, AccountModule } from '../Account';
export declare enum AccountListHooks {
    OnAccountListUpdate = "accountList:onUpdate",
    OnAccountListError = "accountList:onError"
}
/**
 * 账户列表查询参数
 */
export interface AccountListQuery {
    page?: number;
    pageSize?: number;
    search?: string;
    sortBy?: string;
    sortOrder?: 'asc' | 'desc';
    filters?: Record<string, any>;
}
/**
 * 账户列表状态
 */
export interface AccountListState {
    accounts: AccountModule[];
    accountList: Account[];
    isLoading: boolean;
    error: string | null;
}
/**
 * 账户列表模块 API
 */
export interface AccountListModuleAPI {
    /** 添加账户 */
    addAccount: (account: Account) => Promise<void>;
    /** 更新账户 */
    updateAccount: (id: string, updates: Partial<AccountModule>) => Promise<void>;
    /** 删除账户 */
    removeAccount: (id: string) => Promise<void>;
    /** 获取账户列表 */
    getAccounts: () => AccountModule[];
    /** 获取单个账户 */
    getAccount: (id: string) => AccountModule | null;
    /** 清空账户列表 */
    clearAccounts: () => Promise<void>;
    /** 批量添加账户 */
    addAccounts: (accounts: AccountModule[]) => Promise<void>;
    /** 获取holder类型账户列表 */
    fetchHolderAccounts: (params: IFetchHolderAccountsParams) => Promise<void>;
}
/**
 * 获取holder类型账户列表参数
 */
export interface IFetchHolderAccountsParams {
    url?: string;
    query: {
        customer_id: number;
        form_id: string | number;
        shop_id: string | number;
        num?: number;
        skip?: number;
    };
}
/**
 * holder类型数据
 */
export interface IHolder {
    created_at: string;
    form_id: number;
    form_record_id: number;
    main_field: string;
    customer_cover?: string;
}
/**
 * 获取客户列表参数
 */
export interface IGetCustomerListParams {
    /** 页码 */
    page?: number;
    /** 每页数量 */
    pageSize?: number;
    /** 搜索关键词 */
    keyword?: string;
    /** 其他筛选参数 */
    [key: string]: any;
}
/**
 * 客户数据
 */
export interface ICustomer {
    /** 客户ID */
    id: string | number;
    /** 客户姓名 */
    name: string;
    /** 客户电话 */
    phone?: string;
    /** 客户邮箱 */
    email?: string;
    /** 其他客户信息 */
    [key: string]: any;
}
