import { InputClientOptions } from "./clientOpts";
export type FilterOperation = "eq" | "neq" | "gt" | "lt" | "gte" | "lte" | "like" | "ilike" | "cs" | "is" | "in" | "fts" | "plfts" | "phfts";
export type Filter = {
    column: string;
    operation: FilterOperation;
    value: string;
};
export type Prompt = {
    id: string;
    name: string;
    description: string;
    prompt: string;
    createdAt: Date;
    updatedAt?: Date;
    like?: number;
    use?: number;
    tags?: string[];
    user_id?: string;
    public: boolean;
};
export type PromptInsert = Pick<Prompt, "name" | "description" | "prompt" | "tags" | "public">;
export type PromptUpdate = Partial<PromptInsert>;
export declare function getPromptByName(name: string, clientOptions?: InputClientOptions): Promise<Prompt>;
export declare function getPromptById(id: string, clientOptions?: InputClientOptions): Promise<Prompt>;
export declare function getAllPrompts(filters?: Filter[], clientOptions?: InputClientOptions): Promise<Prompt[]>;
export declare function createPrompt(promptData: PromptInsert, clientOptions?: InputClientOptions): Promise<Prompt>;
export declare function updatePrompt(id: string, promptUpdateData: PromptUpdate, clientOptions?: InputClientOptions): Promise<Prompt>;
export declare function deletePrompt(id: string, clientOptions?: InputClientOptions): Promise<void>;
export type PromptClient = {
    getPromptByName: (name: string) => Promise<Prompt>;
    getPromptById: (id: string) => Promise<Prompt>;
    getAllPrompts: (filters?: Filter[]) => Promise<Prompt[]>;
    createPrompt: (promptData: PromptInsert) => Promise<Prompt>;
    updatePrompt: (id: string, promptUpdateData: PromptUpdate) => Promise<Prompt>;
    deletePrompt: (id: string) => Promise<void>;
};
export default function client(clientOptions?: InputClientOptions): PromptClient;
