import type { ListParams } from './common';
import type { TeamPermission, TeamMemberProjectRegistration } from './Team';
export interface Organization {
    id: string;
    name: string;
    description?: string;
    image?: string;
    color?: number;
    subscription?: Record<string, unknown>;
    user?: string;
    aiChatEnabled?: boolean;
    permission?: OrganizationPermission;
    created?: number;
    lastUpdate?: number;
    deleted?: boolean;
}
export interface OrganizationList {
    items: Organization[];
    params: OrganizationListParams;
}
export interface OrganizationCreateRequest {
    name: string;
    description?: string;
    image?: string;
    color?: number;
    aiChatEnabled?: boolean;
}
export interface OrganizationUpdateRequest {
    name?: string;
    description?: string;
    image?: string;
    color?: number;
    aiChatEnabled?: boolean;
}
export interface OrganizationListParams extends ListParams {
    permission?: string;
}
export interface OrganizationPermission {
    invoicing?: boolean;
    billing?: boolean;
    admin?: boolean;
}
export interface OrganizationMember {
    id: string;
    user?: string;
    email: string;
    firstname?: string;
    lastname?: string;
    imageUrl?: string;
    deleted?: boolean;
    invited?: boolean;
    permission?: OrganizationPermission;
    teamAssignments?: OrganizationMemberTeamAssignment[];
    hasActiveContract?: boolean;
    displayName?: string;
    initials?: string;
    lastUpdate?: number;
    created?: number;
}
export interface OrganizationMemberTeamAssignment {
    teamMemberId?: string;
    teamId?: string;
    teamName?: string;
    employeeId?: string;
    deleted?: boolean;
    permission?: TeamPermission;
    projectRegistrations?: TeamMemberProjectRegistration[];
    lastUpdate?: number;
    created?: number;
}
export interface OrganizationMemberCreateRequest {
    email: string;
    firstname?: string;
    lastname?: string;
    invoicing?: boolean;
    billing?: boolean;
    admin?: boolean;
    teamAssignments?: OrganizationMemberTeamAssignment[];
}
export interface OrganizationMemberUpdateRequest {
    invoicing?: boolean;
    billing?: boolean;
    admin?: boolean;
    teamAssignments?: OrganizationMemberTeamAssignment[];
}
export interface OrganizationMemberListParams extends ListParams {
    deleted?: boolean;
}
//# sourceMappingURL=Organization.d.ts.map