/**
 * Next.js環境のサーバー専用クライアント
 * Server ComponentsやAPI Routes、middleware等で使用
 */
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 { ServerClientConfig, BaseClient, ClientHealth, QueryResult, StreamController } from './types';
/**
 * サーバー専用のGFTD-ORMクライアント
 */
export declare class ServerClient implements BaseClient {
    private config;
    private _database;
    private _realtime;
    private initialized;
    private _isConnected;
    constructor(config: ServerClientConfig);
    /**
     * サーバー環境の検証
     */
    private validateServerEnvironment;
    /**
     * データベースクライアントを取得
     */
    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>;
    /**
     * 環境変数から設定を自動読み込み
     */
    static fromEnvironment(): ServerClient;
}
/**
 * サーバー専用クライアント作成関数
 */
export declare function createServerClient(config: ServerClientConfig): ServerClient;
/**
 * Next.js Server Components用のクライアント作成関数
 */
export declare function createNextServerClient(config: ServerClientConfig): ServerClient;
/**
 * 環境変数から自動的にサーバークライアントを作成
 */
export declare function createServerClientFromEnv(): ServerClient;
export {};
//# sourceMappingURL=server.d.ts.map