import { Client as ClientTdf3 } from './client/index.js';
import { type EncryptParams, type DecryptParams } from './client/builders.js';
import { type InputSource } from '../../src/types.js';
import { type AuthProvider } from '../../src/auth/auth.js';
import { AnyTdfStream } from './client/tdf-stream.js';
interface FileClientConfig {
    clientId?: string;
    oidcOrigin?: string;
    clientSecret?: string;
    oidcRefreshToken?: string;
    authProvider?: AuthProvider;
    kasEndpoint?: string;
}
export declare class FileClient {
    dissems: string[];
    dataAttributes: string[];
    client: ClientTdf3;
    constructor(opts: FileClientConfig | ClientTdf3);
    private static setSource;
    encrypt(source?: InputSource, users?: string[], params?: EncryptParams): Promise<AnyTdfStream | null>;
    decrypt(source?: InputSource, params?: DecryptParams): Promise<AnyTdfStream>;
    /**
     * Add attribute to the TDF file/data
     *
     * @param attribute The attribute that decides the access control of the TDF.
     */
    addAttribute(attribute: string): void;
}
export {};
//# sourceMappingURL=FileClient.d.ts.map