import { SupabaseClient } from '@supabase/supabase-js';
import { UserToken } from '../components/public/TokenManager/types.js';
import { DBAdapterBase, DbWalletAlias, DbTokenPrice } from './DBAdapterBase.js';

type DbToken = {
    id?: string;
    user_id: string;
    name: string;
    symbol: string;
    coin_gecko_id: string;
    decimals: number;
    address: string;
    chain_id: number;
    logo_uri: string;
    type: string;
};
declare class SupabaseAdapter implements DBAdapterBase {
    private supabase;
    constructor(supabase: SupabaseClient);
    getUserId(): Promise<string>;
    getUserWalletAliases(): Promise<DbWalletAlias[]>;
    upsertWalletAlias(alias: string, address: string): Promise<void>;
    getOneUserDbToken(userId: string, contractAddress: string, chainId: number): Promise<DbToken>;
    getTokens(): Promise<UserToken[]>;
    updateToken(token: UserToken): Promise<void>;
    addToken(token: UserToken): Promise<void>;
    removeToken(address: string): Promise<void>;
    getTokenPrice(tokenId: string): Promise<DbTokenPrice>;
    saveTokenPrice(tokenId: string, price: number): Promise<void>;
}

export { SupabaseAdapter };
