import type { IdRequest, IdResponse, InitialDataSourceRequest, PageCoverRequest, PageCoverResponse, PageIconRequest, PageIconResponse, ParentOfDatabaseResponse, RichTextItemRequest, RichTextItemResponse } from "./common";
type DataSourceReferenceResponse = {
    id: IdResponse;
    name: string;
};
export type DatabaseObjectResponse = {
    object: "database";
    id: IdResponse;
    title: Array<RichTextItemResponse>;
    description: Array<RichTextItemResponse>;
    parent: ParentOfDatabaseResponse;
    is_inline: boolean;
    in_trash: boolean;
    /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */
    archived: boolean;
    is_locked: boolean;
    created_time: string;
    last_edited_time: string;
    data_sources: Array<DataSourceReferenceResponse>;
    icon: PageIconResponse | null;
    cover: PageCoverResponse | null;
    url: string;
    public_url: string | null;
};
export type PartialDatabaseObjectResponse = {
    object: "database";
    id: IdResponse;
};
type GetDatabasePathParameters = {
    database_id: IdRequest;
};
export type GetDatabaseParameters = GetDatabasePathParameters;
export type GetDatabaseResponse = PartialDatabaseObjectResponse | DatabaseObjectResponse;
/**
 * Retrieve a database
 */
export declare const getDatabase: {
    readonly method: "get";
    readonly pathParams: readonly ["database_id"];
    readonly queryParams: readonly [];
    readonly bodyParams: readonly [];
    readonly path: (p: GetDatabasePathParameters) => string;
};
type UpdateDatabasePathParameters = {
    database_id: IdRequest;
};
type UpdateDatabaseBodyParameters = {
    parent?: {
        type: "page_id" | "workspace";
    } & ({
        type: "page_id";
        page_id: IdRequest;
    } | {
        type: "workspace";
        workspace: true;
    });
    title?: Array<RichTextItemRequest>;
    description?: Array<RichTextItemRequest>;
    is_inline?: boolean;
    icon?: PageIconRequest;
    cover?: PageCoverRequest;
    in_trash?: boolean;
    /** @deprecated Use `in_trash` instead. */
    archived?: boolean;
    is_locked?: boolean;
};
export type UpdateDatabaseParameters = UpdateDatabasePathParameters & UpdateDatabaseBodyParameters;
export type UpdateDatabaseResponse = PartialDatabaseObjectResponse | DatabaseObjectResponse;
/**
 * Update a database
 */
export declare const updateDatabase: {
    readonly method: "patch";
    readonly pathParams: readonly ["database_id"];
    readonly queryParams: readonly [];
    readonly bodyParams: readonly ["parent", "title", "description", "is_inline", "icon", "cover", "in_trash", "is_locked"];
    readonly path: (p: UpdateDatabasePathParameters) => string;
};
type CreateDatabaseBodyParameters = {
    parent: {
        type: "page_id" | "workspace";
    } & ({
        type: "page_id";
        page_id: IdRequest;
    } | {
        type: "workspace";
        workspace: true;
    });
    title?: Array<RichTextItemRequest>;
    description?: Array<RichTextItemRequest>;
    is_inline?: boolean;
    initial_data_source?: InitialDataSourceRequest;
    icon?: PageIconRequest;
    cover?: PageCoverRequest;
};
export type CreateDatabaseParameters = CreateDatabaseBodyParameters;
export type CreateDatabaseResponse = PartialDatabaseObjectResponse | DatabaseObjectResponse;
/**
 * Create a database
 */
export declare const createDatabase: {
    readonly method: "post";
    readonly pathParams: readonly [];
    readonly queryParams: readonly [];
    readonly bodyParams: readonly ["parent", "title", "description", "is_inline", "initial_data_source", "icon", "cover"];
    readonly path: () => string;
};
export {};
//# sourceMappingURL=databases.d.ts.map