import { IDataObject, IHttpRequestOptions, INodeProperties, ICredentialDataDecryptedObject, ICredentialType, INodePropertyOptions } from 'n8n-workflow';
export declare class dataverseAuth implements ICredentialType {
    private accessToken;
    private tokenExpiry;
    private scope;
    private credentials;
    private axiosInstance;
    private static cachedTables;
    private static cachedEntityColumns;
    static getCachedTables(): INodePropertyOptions[] | null;
    static setCachedTables(tables: INodePropertyOptions[]): void;
    static getCachedEntityColumns(entityName: string): INodePropertyOptions[] | undefined;
    static setCachedEntityColumns(entityName: string, options: INodePropertyOptions[]): void;
    private updateAxiosInstance;
    authenticate(credentials: ICredentialDataDecryptedObject, requestOptions: IHttpRequestOptions): Promise<IHttpRequestOptions>;
    private getToken;
    private ensureAuthenticated;
    CreateData(entityName: string, payload: IDataObject, columnsToUpdate?: IDataObject): Promise<any>;
    UpdateData(entityName: string, recordId: string, updateData: IDataObject, columnsToUpdate?: IDataObject): Promise<any>;
    ListEntityColumns(entityName: string): Promise<{
        columns: any[];
    }>;
    ListTables(): Promise<{
        tables: any[];
    }>;
    private extractEntityNameFromFetchXml;
    modifyEntityLogicalName(entityLogicalName: string): string;
    GetData(type: string, entityName: string, query: string): Promise<any>;
    name: string;
    displayName: string;
    properties: INodeProperties[];
}
