import { PluginContextLocation } from './cortexProtocol.js';
export declare enum CortexUserRoleType {
    BASIC = "BASIC",
    CUSTOM = "CUSTOM"
}
export declare enum CortexBasicUserRole {
    MANAGER = "MANAGER",
    OWNER = "OWNER",
    USER = "USER",
    VIEWER = "VIEWER"
}
export interface CortexUserBasicRole {
    role: CortexBasicUserRole;
    type: CortexUserRoleType.BASIC;
}
export interface CortexUserCustomRole {
    name: string;
    tag: string;
    type: CortexUserRoleType.CUSTOM;
}
export type CortexUserRole = CortexUserBasicRole | CortexUserCustomRole;
export interface CortexUser {
    email: string;
    name: string;
    roles?: CortexUserRole[];
}
export interface CortexCatalogEntityIcon {
    kind: string;
    tag: string;
    url: string;
}
export interface CortexEmailOwner {
    description: string | null;
    email: string;
}
export interface PluginEntityOwnership {
    emails: CortexEmailOwner[];
}
export interface CortexCatalogEntity {
    definition: any | null;
    description: string | null;
    groups: string[] | null;
    name: string | null;
    ownership: PluginEntityOwnership;
    tag: string;
    type: string;
}
export interface CortexService extends CortexCatalogEntity {
    type: 'service';
}
export interface CortexResource extends CortexCatalogEntity {
    type: string;
}
export interface CortexDomain extends CortexCatalogEntity {
    type: 'domain';
}
export interface CortexContextResponse {
    apiBaseUrl: string;
    entity: CortexDomain | CortexResource | CortexService | null;
    location: PluginContextLocation;
    style: Record<string, string>;
    tag: string;
    theme: string;
    user: CortexUser;
}
