export interface TokenResponse {
    access_token: string;
    token_type: string;
    expires_in: number;
    scope: string;
}
export interface BookingSearchParams {
    bookingId?: string;
    companyId?: string;
    memberId?: string;
    locationId?: string;
    resourceId?: string;
    seriesStartFrom?: string;
    seriesStartTo?: string;
    seriesEndFrom?: string;
    seriesEndTo?: string;
    /** Maximum number of results to return (1-50). OfficeRnD API has a hard cap of 50. */
    limit?: number;
    cursorNext?: string;
    cursorPrev?: string;
    fields?: string[];
}
export interface Booking {
    _id: string;
    timezone: string;
    start: string;
    end: string;
    member?: string | null;
    company?: string;
    location?: string;
    resource?: string;
    title?: string;
    rate?: string;
    isTentative?: boolean;
    isCancelled?: boolean;
    isAccounted?: boolean;
    fees: Fee[];
    recurrence: {
        rrule: string | null;
    };
    reference: string;
    visitors: any[];
    members: any[];
    serviceSlots: {
        before: number;
        after: number;
    };
    createdAt: string;
    createdBy: string;
    modifiedAt: string;
    modifiedBy: string;
}
export interface Fee {
    date: string;
    extraFees: any[];
    passes: any[];
    credits: Credit[];
    coins: any[];
}
export interface Credit {
    count: number;
    credit: string;
}
export interface BookingSearchResponse {
    rangeStart: number;
    rangeEnd: number;
    cursorNext?: string;
    cursorPrev?: string;
    results: Booking[];
}
export interface MemberSearchParams {
    memberId?: string;
    name?: string;
    email?: string;
    locationId?: string;
    companyId?: string;
    status?: 'active' | 'former';
    createdAtFrom?: string;
    createdAtTo?: string;
    modifiedAtFrom?: string;
    modifiedAtTo?: string;
    /** Maximum number of results to return (1-50). OfficeRnD API has a hard cap of 50. */
    limit?: number;
    cursorNext?: string;
    cursorPrev?: string;
    sort?: string;
    fields?: string[];
}
export interface Member {
    _id: string;
    name: string;
    email: string;
    location: string;
    company: string;
    status: 'active' | 'former';
    startDate?: string;
    createdAt: string;
    modifiedAt: string;
    properties?: Record<string, any>;
}
export interface MemberSearchResponse {
    rangeStart: number;
    rangeEnd: number;
    cursorNext?: string;
    cursorPrev?: string;
    results: Member[];
}
export interface ResourceSearchParams {
    resourceId?: string;
    name?: string;
    locationId?: string;
    resourceTypeId?: string;
    /** Maximum number of results to return (1-50). OfficeRnD API has a hard cap of 50. */
    limit?: number;
    cursorNext?: string;
    cursorPrev?: string;
    sort?: string;
    fields?: string[];
}
export interface Resource {
    _id: string;
    name: string;
    type: string;
    location: string;
    timezone?: string;
    description?: string;
    capacity?: number;
    floor?: string;
    image?: string;
    images?: string[];
    amenities?: string[];
    properties?: Record<string, any>;
    bookable?: boolean;
    visible?: boolean;
    archived?: boolean;
    createdAt: string;
    modifiedAt: string;
    createdBy?: string;
    modifiedBy?: string;
}
export interface ResourceSearchResponse {
    rangeStart: number;
    rangeEnd: number;
    cursorNext?: string;
    cursorPrev?: string;
    results: Resource[];
}
export interface ResourceType {
    _id: string;
    name: string;
    code: string;
    description?: string;
    icon?: string;
    bookable: boolean;
    billable: boolean;
    allowMultipleBookings?: boolean;
    properties?: Record<string, any>;
    createdAt: string;
    modifiedAt: string;
}
export interface ResourceTypeSearchResponse {
    rangeStart: number;
    rangeEnd: number;
    cursorNext?: string;
    cursorPrev?: string;
    results: ResourceType[];
}
export interface CompanySearchParams {
    companyId?: string;
    name?: string;
    email?: string;
    locationId?: string;
    status?: 'active' | 'former';
    createdAtFrom?: string;
    createdAtTo?: string;
    modifiedAtFrom?: string;
    modifiedAtTo?: string;
    /** Maximum number of results to return (1-50). OfficeRnD API has a hard cap of 50. */
    limit?: number;
    cursorNext?: string;
    cursorPrev?: string;
    sort?: string;
    fields?: string[];
}
export interface Company {
    _id: string;
    name: string;
    email?: string;
    location?: string;
    status?: 'active' | 'former';
    phone?: string;
    website?: string;
    address?: string;
    description?: string;
    properties?: Record<string, any>;
    createdAt: string;
    modifiedAt: string;
    createdBy?: string;
    modifiedBy?: string;
}
export interface CompanySearchResponse {
    rangeStart: number;
    rangeEnd: number;
    cursorNext?: string;
    cursorPrev?: string;
    results: Company[];
}
export interface CreateBookingParams {
    start: string;
    end: string;
    resource: string;
    member?: string;
    company?: string;
    title?: string;
    description?: string;
    visitors?: string[];
    members?: string[];
    isTentative?: boolean;
    isPrivate?: boolean;
    isFree?: boolean;
    recurrence?: {
        rrule?: string;
        exdate?: string[];
    };
}
export interface UpdateBookingParams {
    start?: string;
    end?: string;
    resource?: string;
    member?: string;
    company?: string;
    title?: string;
    description?: string;
    visitors?: string[];
    members?: string[];
    isTentative?: boolean;
    isPrivate?: boolean;
    isFree?: boolean;
    recurrence?: {
        rrule?: string;
        exdate?: string[];
    };
}
export interface CancelBookingResponse {
    success: boolean;
    booking?: Booking;
    message?: string;
}
export interface ResourceRateSearchParams {
    resourceRateId?: string;
    resourceId?: string;
    name?: string;
    /** Maximum number of results to return (1-50). OfficeRnD API has a hard cap of 50. */
    limit?: number;
    cursorNext?: string;
    cursorPrev?: string;
    sort?: string;
    fields?: string[];
}
export interface ResourceRate {
    _id: string;
    name: string;
    resource: string;
    price: number;
    currency: string;
    period: 'hour' | 'day' | 'week' | 'month' | 'year';
    minDuration?: number;
    maxDuration?: number;
    description?: string;
    isDefault?: boolean;
    isActive?: boolean;
    validFrom?: string;
    validTo?: string;
    properties?: Record<string, any>;
    createdAt: string;
    modifiedAt: string;
    createdBy?: string;
    modifiedBy?: string;
}
export interface ResourceRateSearchResponse {
    rangeStart: number;
    rangeEnd: number;
    cursorNext?: string;
    cursorPrev?: string;
    results: ResourceRate[];
}
//# sourceMappingURL=types.d.ts.map