import 'server-only';
import Model, { ModelError } from './model';
import type { AgencyContentItem, AgencyMenu, AgencyPreferences, CarouselItem, CustomForm, DBAPISiteData, HestiaAgencyData, SalesPipelineElement } from './agency.types';
import { SharingPermissionsProps } from '../../state';
import CalendarEvent from './calendar-event';
export * from './agency.types';
export declare const DEFAULT_MARKETING_STATEMENT_TEXT = "Get emails with the latest news and information on the local property market, our products and services. You can unsubscribe at any time.";
export declare const DEFAULT_TERMS_STATEMENT_TEXT = "I have read and agree to the Terms and Conditions, Privacy Policy and Cookies Policy.";
export default class Agency extends Model {
static current(): Promise;
static findById(id: number): Promise<{
result: Agency | null;
errors: ModelError[] | null;
}>;
getSharingPermissions(id: number | null): Promise;
private formatSharingPermissions;
get id(): number | null;
get siteId(): number | null;
get name(): string | null;
get subdomain(): string | null;
/**
* The raw agency preferences contains API keys so we must remove them here
* so the agency can safely be serialized and passed to client components
* (we don't remove the google maps key as it is designed for use client-side).
*
* In future if we need to access any of the keys from agency preferences
* we might need a different solution for this.
*/
get preferences(): Partial | null;
get logo(): string | null;
get favicon(): string | null;
get carouselItems(): CarouselItem[] | null;
get contactTelephone(): string | null;
get marketingStatementText(): string;
get termsStatementText(): string;
get customForms(): CustomForm[] | null;
get activatedDomain(): string | null;
get shortDescription(): string | null;
get streetAddress(): string | null;
get town(): string | null;
get county(): string | null;
get postcode(): string | null;
get searchTags(): string[];
get contentItems(): AgencyContentItem[] | null;
get lettingsFeeText(): string | null;
get contentSecurityPolicyHeaders(): string | null;
get defaultSearchStatus(): string | null;
get defaultSalesSortOrder(): string;
get defaultLettingsSortOrder(): string;
get salesPipeline(): SalesPipelineElement[];
get isLeadManagerLive(): boolean;
get isValuation2Live(): boolean;
defaultSortOrder(channel: string): string;
defaultBranchesSortOrder(): string;
/**
* Returns a menu by name from the agency data. Menus are configured in the CMS.
*
* @example
* ```ts
* const primaryMenu = agency.getMenu('primary');
*
* if (!primaryMenu) return null;
*
* const { menu_items: menuItems } = primaryMenu;
* ```
*/
getMenu(name: 'mobile' | 'primary' | 'secondary' | 'branch_primary' | 'footer'): AgencyMenu | null;
getContentItem(name: string): any;
/**
* Fetches dbapi data to make available for additional getters without harming
* performance of themes that only require hestia data.
*/
getExtendedData(): Promise;
getCalendarEvents(title?: string): Promise;
}
//# sourceMappingURL=agency.d.ts.map