import { AccountEntity, CalendarApi, CompanyEntity, Logger, ServiceEntity, ServiceGroupEntity } from "@agendize/js-calendar-api";
import { ComputedRef, Ref } from "vue";
import { Router } from "vue-router";
import { Locale } from "@agendize/az-i18n";
import { PageWithTabsAndPanelOptions } from "@agendize/design-system";
export declare function ServiceGroupDetailsViewModel(api: CalendarApi, organisation: AccountEntity, locale: Locale, companyId: string, serviceGroupId?: string, logger?: Logger, newServiceGroup?: boolean, cloneServiceGroup?: boolean, router?: Router): ServiceGroupDetailsViewModelType;
interface ServiceGroupDetailsViewModelType {
    company: Ref<CompanyEntity>;
    allServiceGroup: Ref<ServiceGroupEntity[]>;
    serviceGroup: Ref<ServiceGroupEntity | undefined>;
    loading: Ref<boolean>;
    validatedField: (item: string, isValid: boolean | {
        isValid: boolean;
        values: any;
        id: string;
    }) => void;
    submitReady: ComputedRef<boolean>;
    serviceGroupName: Ref<string>;
    serviceGroupLogo: Ref<string>;
    serviceGroupLogoFile: Ref<File | undefined>;
    serviceGroupLogoFileData: Ref<string | undefined>;
    onServiceGroupLogoUpdated: (item: File | undefined) => void;
    serviceGroupColor: Ref<string[]>;
    serviceGroupWidgetUrl: Ref<string | undefined>;
    serviceGroupParent: Ref<string[]>;
    serviceGroups: Ref<string[]>;
    serviceGroupValues: Ref<{
        label: string;
        value: string;
    }[]>;
    services: Ref<ServiceEntity[]>;
    serviceGroupExternalId: Ref<string>;
    colors: Ref<{
        label: string;
        value: string;
    }[]>;
    parents: Ref<{
        label: string;
        value: string;
    }[]>;
    onSave: () => void;
    back: () => void;
    pageOptions: Ref<PageWithTabsAndPanelOptions>;
}
export {};
