/**
 * Next.js環境のブラウザ専用クライアント
 * Client ComponentsやPages Routerのクライアントサイドで使用
 */
declare class DatabaseClient {
    constructor(config: any);
    initialize(): Promise<void>;
    from<T = any>(table: string): {
        select: () => {
            eq: () => {
                execute: () => Promise<{
                    data: never[];
                    error: null;
                }>;
            };
        };
        insert: (data: any) => Promise<{
            data: never[];
            error: null;
        }>;
        update: (data: any) => Promise<{
            data: never[];
            error: null;
        }>;
        delete: () => Promise<{
            data: never[];
            error: null;
        }>;
        execute: () => Promise<{
            data: never[];
            error: null;
        }>;
    };
    sql(query: string, params?: any[]): Promise<{
        data: never[];
        queryId: string;
    }>;
    health(): Promise<{
        status: string;
    }>;
}
import { RealtimeClient } from '../realtime-client';
import { BrowserClientConfig, BaseClient, ClientHealth, QueryResult, StreamController } from './types';
/**
 * ブラウザ専用のGFTD-ORMクライアント
 */
export declare class BrowserClient implements BaseClient {
    private config;
    private _database;
    private _realtime;
    private initialized;
    private _isConnected;
    constructor(config: BrowserClientConfig);
    /**
     * ブラウザ環境の検証
     */
    private validateBrowserEnvironment;
    /**
     * データベースクライアントを取得
     */
    get database(): DatabaseClient;
    /**
     * リアルタイムクライアントを取得
     */
    get realtime(): RealtimeClient;
    /**
     * クライアントを初期化
     */
    initialize(): Promise<void>;
    /**
     * Supabaseライクなテーブルアクセス
     */
    from<T = any>(table: string): {
        select: () => {
            eq: () => {
                execute: () => Promise<{
                    data: never[];
                    error: null;
                }>;
            };
        };
        insert: (data: any) => Promise<{
            data: never[];
            error: null;
        }>;
        update: (data: any) => Promise<{
            data: never[];
            error: null;
        }>;
        delete: () => Promise<{
            data: never[];
            error: null;
        }>;
        execute: () => Promise<{
            data: never[];
            error: null;
        }>;
    };
    /**
     * SQL クエリを実行
     */
    query<T = any>(sql: string, params?: any[]): Promise<QueryResult<T>>;
    /**
     * ストリーミングクエリを実行
     */
    stream<T = any>(sql: string, onData: (data: T) => void, onError?: (error: Error) => void): Promise<StreamController>;
    /**
     * リアルタイムチャンネル
     */
    channel(name: string): import("../realtime-client").RealtimeChannel;
    /**
     * ヘルスチェック
     */
    health(): Promise<ClientHealth>;
    /**
     * 接続状態を確認
     */
    isConnected(): boolean;
    /**
     * すべての接続を閉じる
     */
    disconnect(): Promise<void>;
}
/**
 * ブラウザ専用クライアント作成関数
 */
export declare function createBrowserClient(config: BrowserClientConfig): BrowserClient;
/**
 * Next.js Client Components用のクライアント作成関数
 */
export declare function createNextBrowserClient(config: BrowserClientConfig): BrowserClient;
export {};
//# sourceMappingURL=browser.d.ts.map