import { IAuthentication, ICredentials } from "@c8y/client";
export interface C8yAuthOptions extends ICredentials {
    sendImmediately?: boolean;
    bearer?: (() => string) | string;
    userAlias?: string;
    type?: string;
    xsrfToken?: string;
}
export interface C8yPactAuthObject {
    userAlias?: string;
    user: string;
    type?: string;
}
type C8yPactAuthObjectType = keyof C8yPactAuthObject;
export declare const C8yPactAuthObjectKeys: C8yPactAuthObjectType[];
export type C8yAuthentication = IAuthentication;
/**
 * Checks if the given object is a C8yAuthOptions.
 *
 * @param obj The object to check.
 * @param options Options to check for additional properties.
 * @returns True if the object is a C8yAuthOptions, false otherwise.
 */
export declare function isAuthOptions(obj: any): obj is C8yAuthOptions;
export declare function toPactAuthObject(obj: C8yAuthOptions | IAuthentication | ICredentials): C8yPactAuthObject;
export declare function isPactAuthObject(obj: any): obj is C8yPactAuthObject;
export declare function normalizeAuthHeaders(headers: {
    [key: string]: any;
}): {
    [key: string]: any;
};
export declare function getAuthOptionsFromBasicAuthHeader(authHeader: string): {
    user: string;
    password: string;
} | undefined;
export declare function encodeBase64(str: string): string;
export declare function decodeBase64(base64: string): string;
export {};
