import { z } from 'zod';
import { CredentialType } from '@bubblelab/shared-schemas';
/**
 * PostHog event object from events API
 */
export declare const PosthogEventSchema: z.ZodObject<{
    id: z.ZodOptional<z.ZodString>;
    uuid: z.ZodOptional<z.ZodString>;
    event: z.ZodString;
    distinct_id: z.ZodString;
    properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    timestamp: z.ZodOptional<z.ZodString>;
    created_at: z.ZodOptional<z.ZodString>;
    elements: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
    elements_chain: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    event: string;
    distinct_id: string;
    properties?: Record<string, unknown> | undefined;
    uuid?: string | undefined;
    id?: string | undefined;
    elements?: unknown[] | undefined;
    timestamp?: string | undefined;
    created_at?: string | undefined;
    elements_chain?: string | undefined;
}, {
    event: string;
    distinct_id: string;
    properties?: Record<string, unknown> | undefined;
    uuid?: string | undefined;
    id?: string | undefined;
    elements?: unknown[] | undefined;
    timestamp?: string | undefined;
    created_at?: string | undefined;
    elements_chain?: string | undefined;
}>;
/**
 * PostHog person object from persons API
 */
export declare const PosthogPersonSchema: z.ZodObject<{
    id: z.ZodString;
    uuid: z.ZodOptional<z.ZodString>;
    distinct_ids: z.ZodArray<z.ZodString, "many">;
    properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    created_at: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    id: string;
    distinct_ids: string[];
    properties?: Record<string, unknown> | undefined;
    uuid?: string | undefined;
    created_at?: string | undefined;
}, {
    id: string;
    distinct_ids: string[];
    properties?: Record<string, unknown> | undefined;
    uuid?: string | undefined;
    created_at?: string | undefined;
}>;
/**
 * PostHog insight object from insights API
 */
export declare const PosthogInsightSchema: z.ZodObject<{
    id: z.ZodNumber;
    short_id: z.ZodOptional<z.ZodString>;
    name: z.ZodNullable<z.ZodOptional<z.ZodString>>;
    description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
    result: z.ZodOptional<z.ZodUnknown>;
    filters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    created_at: z.ZodOptional<z.ZodString>;
    last_refresh: z.ZodNullable<z.ZodOptional<z.ZodString>>;
    last_modified_at: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    id: number;
    description?: string | null | undefined;
    name?: string | null | undefined;
    result?: unknown;
    created_at?: string | undefined;
    filters?: Record<string, unknown> | undefined;
    short_id?: string | undefined;
    last_refresh?: string | null | undefined;
    last_modified_at?: string | undefined;
}, {
    id: number;
    description?: string | null | undefined;
    name?: string | null | undefined;
    result?: unknown;
    created_at?: string | undefined;
    filters?: Record<string, unknown> | undefined;
    short_id?: string | undefined;
    last_refresh?: string | null | undefined;
    last_modified_at?: string | undefined;
}>;
/**
 * HogQL query result
 */
export declare const PosthogQueryResultSchema: z.ZodObject<{
    columns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    results: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
    types: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>, "many">>;
    hasMore: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    limit: z.ZodOptional<z.ZodNumber>;
    offset: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    types?: (string | string[])[] | undefined;
    limit?: number | undefined;
    offset?: number | undefined;
    hasMore?: boolean | null | undefined;
    results?: unknown[][] | undefined;
    columns?: string[] | undefined;
}, {
    types?: (string | string[])[] | undefined;
    limit?: number | undefined;
    offset?: number | undefined;
    hasMore?: boolean | null | undefined;
    results?: unknown[][] | undefined;
    columns?: string[] | undefined;
}>;
/**
 * PostHog project object from projects API
 */
export declare const PosthogProjectSchema: z.ZodObject<{
    id: z.ZodNumber;
    uuid: z.ZodOptional<z.ZodString>;
    name: z.ZodString;
    organization: z.ZodOptional<z.ZodString>;
    created_at: z.ZodOptional<z.ZodString>;
    timezone: z.ZodOptional<z.ZodString>;
    is_demo: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    name: string;
    id: number;
    uuid?: string | undefined;
    created_at?: string | undefined;
    organization?: string | undefined;
    timezone?: string | undefined;
    is_demo?: boolean | undefined;
}, {
    name: string;
    id: number;
    uuid?: string | undefined;
    created_at?: string | undefined;
    organization?: string | undefined;
    timezone?: string | undefined;
    is_demo?: boolean | undefined;
}>;
export declare const PosthogParamsSchema: z.ZodDiscriminatedUnion<"operation", [z.ZodObject<{
    operation: z.ZodLiteral<"list_projects">;
    host: z.ZodDefault<z.ZodOptional<z.ZodString>>;
    limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "list_projects";
    limit: number;
    host: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}, {
    operation: "list_projects";
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    limit?: number | undefined;
    host?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"list_events">;
    project_id: z.ZodString;
    host: z.ZodDefault<z.ZodOptional<z.ZodString>>;
    event: z.ZodOptional<z.ZodString>;
    person_id: z.ZodOptional<z.ZodString>;
    distinct_id: z.ZodOptional<z.ZodString>;
    after: z.ZodOptional<z.ZodString>;
    before: z.ZodOptional<z.ZodString>;
    properties: z.ZodOptional<z.ZodString>;
    limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "list_events";
    limit: number;
    host: string;
    project_id: string;
    properties?: string | undefined;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    event?: string | undefined;
    person_id?: string | undefined;
    after?: string | undefined;
    before?: string | undefined;
    distinct_id?: string | undefined;
}, {
    operation: "list_events";
    project_id: string;
    properties?: string | undefined;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    limit?: number | undefined;
    event?: string | undefined;
    person_id?: string | undefined;
    after?: string | undefined;
    before?: string | undefined;
    distinct_id?: string | undefined;
    host?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"query">;
    project_id: z.ZodString;
    host: z.ZodDefault<z.ZodOptional<z.ZodString>>;
    query: z.ZodString;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    query: string;
    operation: "query";
    host: string;
    project_id: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}, {
    query: string;
    operation: "query";
    project_id: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    host?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"get_person">;
    project_id: z.ZodString;
    host: z.ZodDefault<z.ZodOptional<z.ZodString>>;
    distinct_id: z.ZodOptional<z.ZodString>;
    search: z.ZodOptional<z.ZodString>;
    limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "get_person";
    limit: number;
    host: string;
    project_id: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    search?: string | undefined;
    distinct_id?: string | undefined;
}, {
    operation: "get_person";
    project_id: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    search?: string | undefined;
    limit?: number | undefined;
    distinct_id?: string | undefined;
    host?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"get_insight">;
    project_id: z.ZodString;
    host: z.ZodDefault<z.ZodOptional<z.ZodString>>;
    insight_id: z.ZodNumber;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "get_insight";
    host: string;
    project_id: string;
    insight_id: number;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}, {
    operation: "get_insight";
    project_id: string;
    insight_id: number;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    host?: string | undefined;
}>]>;
export declare const PosthogResultSchema: z.ZodDiscriminatedUnion<"operation", [z.ZodObject<{
    operation: z.ZodLiteral<"list_projects">;
    success: z.ZodBoolean;
    projects: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodNumber;
        uuid: z.ZodOptional<z.ZodString>;
        name: z.ZodString;
        organization: z.ZodOptional<z.ZodString>;
        created_at: z.ZodOptional<z.ZodString>;
        timezone: z.ZodOptional<z.ZodString>;
        is_demo: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        id: number;
        uuid?: string | undefined;
        created_at?: string | undefined;
        organization?: string | undefined;
        timezone?: string | undefined;
        is_demo?: boolean | undefined;
    }, {
        name: string;
        id: number;
        uuid?: string | undefined;
        created_at?: string | undefined;
        organization?: string | undefined;
        timezone?: string | undefined;
        is_demo?: boolean | undefined;
    }>, "many">>;
    next: z.ZodNullable<z.ZodOptional<z.ZodString>>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "list_projects";
    projects?: {
        name: string;
        id: number;
        uuid?: string | undefined;
        created_at?: string | undefined;
        organization?: string | undefined;
        timezone?: string | undefined;
        is_demo?: boolean | undefined;
    }[] | undefined;
    next?: string | null | undefined;
}, {
    error: string;
    success: boolean;
    operation: "list_projects";
    projects?: {
        name: string;
        id: number;
        uuid?: string | undefined;
        created_at?: string | undefined;
        organization?: string | undefined;
        timezone?: string | undefined;
        is_demo?: boolean | undefined;
    }[] | undefined;
    next?: string | null | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"list_events">;
    success: z.ZodBoolean;
    events: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodOptional<z.ZodString>;
        uuid: z.ZodOptional<z.ZodString>;
        event: z.ZodString;
        distinct_id: z.ZodString;
        properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        timestamp: z.ZodOptional<z.ZodString>;
        created_at: z.ZodOptional<z.ZodString>;
        elements: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
        elements_chain: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        event: string;
        distinct_id: string;
        properties?: Record<string, unknown> | undefined;
        uuid?: string | undefined;
        id?: string | undefined;
        elements?: unknown[] | undefined;
        timestamp?: string | undefined;
        created_at?: string | undefined;
        elements_chain?: string | undefined;
    }, {
        event: string;
        distinct_id: string;
        properties?: Record<string, unknown> | undefined;
        uuid?: string | undefined;
        id?: string | undefined;
        elements?: unknown[] | undefined;
        timestamp?: string | undefined;
        created_at?: string | undefined;
        elements_chain?: string | undefined;
    }>, "many">>;
    next: z.ZodNullable<z.ZodOptional<z.ZodString>>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "list_events";
    events?: {
        event: string;
        distinct_id: string;
        properties?: Record<string, unknown> | undefined;
        uuid?: string | undefined;
        id?: string | undefined;
        elements?: unknown[] | undefined;
        timestamp?: string | undefined;
        created_at?: string | undefined;
        elements_chain?: string | undefined;
    }[] | undefined;
    next?: string | null | undefined;
}, {
    error: string;
    success: boolean;
    operation: "list_events";
    events?: {
        event: string;
        distinct_id: string;
        properties?: Record<string, unknown> | undefined;
        uuid?: string | undefined;
        id?: string | undefined;
        elements?: unknown[] | undefined;
        timestamp?: string | undefined;
        created_at?: string | undefined;
        elements_chain?: string | undefined;
    }[] | undefined;
    next?: string | null | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"query">;
    success: z.ZodBoolean;
    columns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    results: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
    types: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>, "many">>;
    hasMore: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "query";
    types?: (string | string[])[] | undefined;
    hasMore?: boolean | null | undefined;
    results?: unknown[][] | undefined;
    columns?: string[] | undefined;
}, {
    error: string;
    success: boolean;
    operation: "query";
    types?: (string | string[])[] | undefined;
    hasMore?: boolean | null | undefined;
    results?: unknown[][] | undefined;
    columns?: string[] | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"get_person">;
    success: z.ZodBoolean;
    persons: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        uuid: z.ZodOptional<z.ZodString>;
        distinct_ids: z.ZodArray<z.ZodString, "many">;
        properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        created_at: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        distinct_ids: string[];
        properties?: Record<string, unknown> | undefined;
        uuid?: string | undefined;
        created_at?: string | undefined;
    }, {
        id: string;
        distinct_ids: string[];
        properties?: Record<string, unknown> | undefined;
        uuid?: string | undefined;
        created_at?: string | undefined;
    }>, "many">>;
    next: z.ZodNullable<z.ZodOptional<z.ZodString>>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "get_person";
    next?: string | null | undefined;
    persons?: {
        id: string;
        distinct_ids: string[];
        properties?: Record<string, unknown> | undefined;
        uuid?: string | undefined;
        created_at?: string | undefined;
    }[] | undefined;
}, {
    error: string;
    success: boolean;
    operation: "get_person";
    next?: string | null | undefined;
    persons?: {
        id: string;
        distinct_ids: string[];
        properties?: Record<string, unknown> | undefined;
        uuid?: string | undefined;
        created_at?: string | undefined;
    }[] | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"get_insight">;
    success: z.ZodBoolean;
    insight: z.ZodOptional<z.ZodObject<{
        id: z.ZodNumber;
        short_id: z.ZodOptional<z.ZodString>;
        name: z.ZodNullable<z.ZodOptional<z.ZodString>>;
        description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
        result: z.ZodOptional<z.ZodUnknown>;
        filters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        created_at: z.ZodOptional<z.ZodString>;
        last_refresh: z.ZodNullable<z.ZodOptional<z.ZodString>>;
        last_modified_at: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        id: number;
        description?: string | null | undefined;
        name?: string | null | undefined;
        result?: unknown;
        created_at?: string | undefined;
        filters?: Record<string, unknown> | undefined;
        short_id?: string | undefined;
        last_refresh?: string | null | undefined;
        last_modified_at?: string | undefined;
    }, {
        id: number;
        description?: string | null | undefined;
        name?: string | null | undefined;
        result?: unknown;
        created_at?: string | undefined;
        filters?: Record<string, unknown> | undefined;
        short_id?: string | undefined;
        last_refresh?: string | null | undefined;
        last_modified_at?: string | undefined;
    }>>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "get_insight";
    insight?: {
        id: number;
        description?: string | null | undefined;
        name?: string | null | undefined;
        result?: unknown;
        created_at?: string | undefined;
        filters?: Record<string, unknown> | undefined;
        short_id?: string | undefined;
        last_refresh?: string | null | undefined;
        last_modified_at?: string | undefined;
    } | undefined;
}, {
    error: string;
    success: boolean;
    operation: "get_insight";
    insight?: {
        id: number;
        description?: string | null | undefined;
        name?: string | null | undefined;
        result?: unknown;
        created_at?: string | undefined;
        filters?: Record<string, unknown> | undefined;
        short_id?: string | undefined;
        last_refresh?: string | null | undefined;
        last_modified_at?: string | undefined;
    } | undefined;
}>]>;
export type PosthogParamsInput = z.input<typeof PosthogParamsSchema>;
export type PosthogParams = z.output<typeof PosthogParamsSchema>;
export type PosthogResult = z.output<typeof PosthogResultSchema>;
export type PosthogEvent = z.output<typeof PosthogEventSchema>;
export type PosthogPerson = z.output<typeof PosthogPersonSchema>;
export type PosthogInsight = z.output<typeof PosthogInsightSchema>;
export type PosthogQueryResult = z.output<typeof PosthogQueryResultSchema>;
export type PosthogProject = z.output<typeof PosthogProjectSchema>;
export type PosthogListProjectsParams = Extract<PosthogParams, {
    operation: 'list_projects';
}>;
export type PosthogListEventsParams = Extract<PosthogParams, {
    operation: 'list_events';
}>;
export type PosthogQueryParams = Extract<PosthogParams, {
    operation: 'query';
}>;
export type PosthogGetPersonParams = Extract<PosthogParams, {
    operation: 'get_person';
}>;
export type PosthogGetInsightParams = Extract<PosthogParams, {
    operation: 'get_insight';
}>;
//# sourceMappingURL=posthog.schema.d.ts.map