import { SecureStorage } from './secure-storage';
import { HttpResponse, RetryPolicy } from './types';
interface ShardAuthClientOptions {
    shareStorage: SecureStorage;
    apiEndpoint: string;
    signatureEndpoint: string;
    timeout?: number;
    httpClient?: any;
    retryPolicy?: RetryPolicy;
}
/**
 * Shard-Auth認証を使用するHTTPクライアント
 *
 * @example
 * ```typescript
 * const client = new ShardAuthClient({
 *   shareStorage: new SecureStorage('./share.key'),
 *   apiEndpoint: 'https://api.example.com',
 *   signatureEndpoint: 'https://auth.example.com'
 * });
 *
 * const response = await client.get('/api/v1/users');
 * ```
 */
export declare class ShardAuthClient {
    private shareStorage;
    private apiEndpoint;
    private signatureEndpoint;
    private timeout;
    private httpClient;
    private retryPolicy;
    private signatureClient?;
    private share?;
    private destroyed;
    constructor(options: ShardAuthClientOptions);
    private ensureInitialized;
    private signRequest;
    private makeRequest;
    get(path: string): Promise<HttpResponse>;
    post(path: string, body: any): Promise<HttpResponse>;
    put(path: string, body: any): Promise<HttpResponse>;
    delete(path: string): Promise<HttpResponse>;
    patch(path: string, body: any): Promise<HttpResponse>;
    head(path: string): Promise<HttpResponse>;
    options(path: string): Promise<HttpResponse>;
    destroy(): void;
    isDestroyed(): boolean;
}
export {};
//# sourceMappingURL=shard-auth-client.d.ts.map