import { DashboardUiConfiguration, DriverTipConfiguration, MerchantConfiguration, MerchantConfigurationCSVField, MobileTaskForm, RatingReasonConfig } from '@bringg/types';
import Entity from '../../Core/Entity';
import Session from '../../Services/Identity/Session';
import { UploadLogoResponse } from '../MerchantConfiguration.consts';
export default class MerchantConfigurationEntity extends Entity<MerchantConfiguration> {
    constructor(session: Session);
    private updateMerchantConfigurationField;
    private updateMerchantConfiguration;
    private urlRequest;
    resetDeliveryPin(): Promise<string>;
    resetDestinationPin(): Promise<string>;
    resetEmailLogo(): Promise<string>;
    resetClientAppLogo(): Promise<string>;
    uploadLogo(imageFile: File): Promise<UploadLogoResponse>;
    get(): Promise<MerchantConfiguration>;
    fetchConfiguration(): Promise<MerchantConfiguration>;
    update(diff: Partial<MerchantConfiguration>): Promise<MerchantConfiguration>;
    getCsvFields(): Promise<MerchantConfigurationCSVField[]>;
    setCsvFields(csvFields: Partial<MerchantConfigurationCSVField>[]): Promise<MerchantConfigurationCSVField[]>;
    getUserCsvFields(): Promise<MerchantConfigurationCSVField[]>;
    setUserCsvFields(csvFields: Partial<MerchantConfigurationCSVField>[]): Promise<MerchantConfigurationCSVField[]>;
    deliveryPinChange(alternativePin: string): Promise<string>;
    dashboardTableConfigurationUpdate(table_configuration: {}): Promise<void>;
    setDashboardUiConfigurationOnMerchantLevel(dashboardUiConfiguration: DashboardUiConfiguration): Promise<void>;
    getRatingReasonConfiguration(): Promise<RatingReasonConfig>;
    setRatingReasonConfiguration(ratingReasonConfig: Partial<RatingReasonConfig>): Promise<RatingReasonConfig>;
    requestBetaProgram(featureName: string): Promise<boolean>;
    getTipDriverConfiguration(): Promise<DriverTipConfiguration>;
    setTipDriverConfiguration(configuration: DriverTipConfiguration): Promise<DriverTipConfiguration>;
    getMobileTaskForm(): Promise<MobileTaskForm>;
    setMobileTaskForm(form: MobileTaskForm): Promise<MobileTaskForm>;
}
