import { AuthClient, ExternalAccountClientOptions, ImpersonatedOptions, JWTOptions, OAuth2ClientOptions, UserRefreshClientOptions } from "google-auth-library";
import Testers from "./testers";
import Groups from "./groups";
import { JSONClient } from "google-auth-library/build/src/auth/googleauth";
interface CredentialBody {
    client_email?: string;
    private_key?: string;
    [key: string]: any;
}
interface FirebaseAppDistributionArgs<T extends AuthClient = JSONClient> {
    /**
     * Your project number.
     */
    projectNumber: string;
    /**
     * An `AuthClient` to use
     */
    authClient?: T;
    /**
     * Path to a .json, .pem, or .p12 key file
     */
    keyFilename?: string;
    /**
     * Path to a .json, .pem, or .p12 key file
     */
    keyFile?: string;
    /**
     * Object containing client_email and private_key properties, or the
     * external account client options.
     */
    credentials?: CredentialBody | ExternalAccountClientOptions;
    /**
     * Options object passed to the constructor of the client
     */
    clientOptions?: JWTOptions | OAuth2ClientOptions | UserRefreshClientOptions | ImpersonatedOptions;
}
export declare class FirebaseAppDistribution {
    projectNumber: string;
    testers: Testers;
    groups: Groups;
    private googleAuthArgs;
    private accessToken;
    constructor({ projectNumber, keyFilename, keyFile, credentials, }: FirebaseAppDistributionArgs);
    getAccessToken(): Promise<string>;
}
export {};
