import { z } from 'zod';
import { CredentialType } from '@bubblelab/shared-schemas';
/**
 * User/owner object from Granola API
 */
export declare const GranolaUserSchema: z.ZodObject<{
    name: z.ZodNullable<z.ZodString>;
    email: z.ZodString;
}, "strip", z.ZodTypeAny, {
    name: string | null;
    email: string;
}, {
    name: string | null;
    email: string;
}>;
/**
 * Calendar invitee from Granola API
 */
export declare const GranolaCalendarInviteeSchema: z.ZodObject<{
    email: z.ZodString;
}, "strip", z.ZodTypeAny, {
    email: string;
}, {
    email: string;
}>;
/**
 * Calendar event associated with a note
 */
export declare const GranolaCalendarEventSchema: z.ZodObject<{
    event_title: z.ZodNullable<z.ZodString>;
    invitees: z.ZodArray<z.ZodObject<{
        email: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        email: string;
    }, {
        email: string;
    }>, "many">;
    organiser: z.ZodNullable<z.ZodString>;
    calendar_event_id: z.ZodNullable<z.ZodString>;
    scheduled_start_time: z.ZodNullable<z.ZodString>;
    scheduled_end_time: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    event_title: string | null;
    invitees: {
        email: string;
    }[];
    organiser: string | null;
    calendar_event_id: string | null;
    scheduled_start_time: string | null;
    scheduled_end_time: string | null;
}, {
    event_title: string | null;
    invitees: {
        email: string;
    }[];
    organiser: string | null;
    calendar_event_id: string | null;
    scheduled_start_time: string | null;
    scheduled_end_time: string | null;
}>;
/**
 * Folder membership from Granola API
 */
export declare const GranolaFolderSchema: z.ZodObject<{
    id: z.ZodString;
    object: z.ZodLiteral<"folder">;
    name: z.ZodString;
}, "strip", z.ZodTypeAny, {
    object: "folder";
    name: string;
    id: string;
}, {
    object: "folder";
    name: string;
    id: string;
}>;
/**
 * Transcript speaker from Granola API
 */
export declare const GranolaSpeakerSchema: z.ZodObject<{
    source: z.ZodEnum<["microphone", "speaker"]>;
    diarization_label: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    source: "microphone" | "speaker";
    diarization_label?: string | undefined;
}, {
    source: "microphone" | "speaker";
    diarization_label?: string | undefined;
}>;
/**
 * Transcript entry from Granola API
 */
export declare const GranolaTranscriptEntrySchema: z.ZodObject<{
    speaker: z.ZodObject<{
        source: z.ZodEnum<["microphone", "speaker"]>;
        diarization_label: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        source: "microphone" | "speaker";
        diarization_label?: string | undefined;
    }, {
        source: "microphone" | "speaker";
        diarization_label?: string | undefined;
    }>;
    text: z.ZodString;
    start_time: z.ZodString;
    end_time: z.ZodString;
}, "strip", z.ZodTypeAny, {
    text: string;
    speaker: {
        source: "microphone" | "speaker";
        diarization_label?: string | undefined;
    };
    start_time: string;
    end_time: string;
}, {
    text: string;
    speaker: {
        source: "microphone" | "speaker";
        diarization_label?: string | undefined;
    };
    start_time: string;
    end_time: string;
}>;
/**
 * Note summary (returned by list_notes)
 */
export declare const GranolaNoteSummarySchema: z.ZodObject<{
    id: z.ZodString;
    object: z.ZodLiteral<"note">;
    title: z.ZodNullable<z.ZodString>;
    owner: z.ZodObject<{
        name: z.ZodNullable<z.ZodString>;
        email: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        name: string | null;
        email: string;
    }, {
        name: string | null;
        email: string;
    }>;
    created_at: z.ZodString;
    updated_at: z.ZodString;
}, "strip", z.ZodTypeAny, {
    object: "note";
    title: string | null;
    id: string;
    created_at: string;
    owner: {
        name: string | null;
        email: string;
    };
    updated_at: string;
}, {
    object: "note";
    title: string | null;
    id: string;
    created_at: string;
    owner: {
        name: string | null;
        email: string;
    };
    updated_at: string;
}>;
/**
 * Full note (returned by get_note)
 */
export declare const GranolaNoteSchema: z.ZodObject<{
    id: z.ZodString;
    object: z.ZodLiteral<"note">;
    title: z.ZodNullable<z.ZodString>;
    owner: z.ZodObject<{
        name: z.ZodNullable<z.ZodString>;
        email: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        name: string | null;
        email: string;
    }, {
        name: string | null;
        email: string;
    }>;
    created_at: z.ZodString;
    updated_at: z.ZodString;
} & {
    calendar_event: z.ZodNullable<z.ZodObject<{
        event_title: z.ZodNullable<z.ZodString>;
        invitees: z.ZodArray<z.ZodObject<{
            email: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            email: string;
        }, {
            email: string;
        }>, "many">;
        organiser: z.ZodNullable<z.ZodString>;
        calendar_event_id: z.ZodNullable<z.ZodString>;
        scheduled_start_time: z.ZodNullable<z.ZodString>;
        scheduled_end_time: z.ZodNullable<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        event_title: string | null;
        invitees: {
            email: string;
        }[];
        organiser: string | null;
        calendar_event_id: string | null;
        scheduled_start_time: string | null;
        scheduled_end_time: string | null;
    }, {
        event_title: string | null;
        invitees: {
            email: string;
        }[];
        organiser: string | null;
        calendar_event_id: string | null;
        scheduled_start_time: string | null;
        scheduled_end_time: string | null;
    }>>;
    attendees: z.ZodArray<z.ZodObject<{
        name: z.ZodNullable<z.ZodString>;
        email: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        name: string | null;
        email: string;
    }, {
        name: string | null;
        email: string;
    }>, "many">;
    folder_membership: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        object: z.ZodLiteral<"folder">;
        name: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        object: "folder";
        name: string;
        id: string;
    }, {
        object: "folder";
        name: string;
        id: string;
    }>, "many">;
    summary_text: z.ZodString;
    summary_markdown: z.ZodNullable<z.ZodString>;
    transcript: z.ZodNullable<z.ZodArray<z.ZodObject<{
        speaker: z.ZodObject<{
            source: z.ZodEnum<["microphone", "speaker"]>;
            diarization_label: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            source: "microphone" | "speaker";
            diarization_label?: string | undefined;
        }, {
            source: "microphone" | "speaker";
            diarization_label?: string | undefined;
        }>;
        text: z.ZodString;
        start_time: z.ZodString;
        end_time: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        text: string;
        speaker: {
            source: "microphone" | "speaker";
            diarization_label?: string | undefined;
        };
        start_time: string;
        end_time: string;
    }, {
        text: string;
        speaker: {
            source: "microphone" | "speaker";
            diarization_label?: string | undefined;
        };
        start_time: string;
        end_time: string;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    object: "note";
    title: string | null;
    id: string;
    created_at: string;
    owner: {
        name: string | null;
        email: string;
    };
    attendees: {
        name: string | null;
        email: string;
    }[];
    updated_at: string;
    calendar_event: {
        event_title: string | null;
        invitees: {
            email: string;
        }[];
        organiser: string | null;
        calendar_event_id: string | null;
        scheduled_start_time: string | null;
        scheduled_end_time: string | null;
    } | null;
    folder_membership: {
        object: "folder";
        name: string;
        id: string;
    }[];
    summary_text: string;
    summary_markdown: string | null;
    transcript: {
        text: string;
        speaker: {
            source: "microphone" | "speaker";
            diarization_label?: string | undefined;
        };
        start_time: string;
        end_time: string;
    }[] | null;
}, {
    object: "note";
    title: string | null;
    id: string;
    created_at: string;
    owner: {
        name: string | null;
        email: string;
    };
    attendees: {
        name: string | null;
        email: string;
    }[];
    updated_at: string;
    calendar_event: {
        event_title: string | null;
        invitees: {
            email: string;
        }[];
        organiser: string | null;
        calendar_event_id: string | null;
        scheduled_start_time: string | null;
        scheduled_end_time: string | null;
    } | null;
    folder_membership: {
        object: "folder";
        name: string;
        id: string;
    }[];
    summary_text: string;
    summary_markdown: string | null;
    transcript: {
        text: string;
        speaker: {
            source: "microphone" | "speaker";
            diarization_label?: string | undefined;
        };
        start_time: string;
        end_time: string;
    }[] | null;
}>;
export declare const GranolaParamsSchema: z.ZodDiscriminatedUnion<"operation", [z.ZodObject<{
    operation: z.ZodEffects<z.ZodLiteral<"list_notes">, "list_notes", "list_notes">;
    created_before: z.ZodOptional<z.ZodString>;
    created_after: z.ZodOptional<z.ZodString>;
    updated_after: z.ZodOptional<z.ZodString>;
    cursor: z.ZodOptional<z.ZodString>;
    page_size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "list_notes";
    page_size: number;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    cursor?: string | undefined;
    created_before?: string | undefined;
    created_after?: string | undefined;
    updated_after?: string | undefined;
}, {
    operation: "list_notes";
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    cursor?: string | undefined;
    page_size?: number | undefined;
    created_before?: string | undefined;
    created_after?: string | undefined;
    updated_after?: string | undefined;
}>, z.ZodObject<{
    operation: z.ZodEffects<z.ZodLiteral<"get_note">, "get_note", "get_note">;
    note_id: z.ZodString;
    include_transcript: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "get_note";
    note_id: string;
    include_transcript: boolean;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
}, {
    operation: "get_note";
    note_id: string;
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    include_transcript?: boolean | undefined;
}>]>;
export declare const GranolaResultSchema: z.ZodDiscriminatedUnion<"operation", [z.ZodObject<{
    operation: z.ZodLiteral<"list_notes">;
    success: z.ZodBoolean;
    notes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        object: z.ZodLiteral<"note">;
        title: z.ZodNullable<z.ZodString>;
        owner: z.ZodObject<{
            name: z.ZodNullable<z.ZodString>;
            email: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            name: string | null;
            email: string;
        }, {
            name: string | null;
            email: string;
        }>;
        created_at: z.ZodString;
        updated_at: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        object: "note";
        title: string | null;
        id: string;
        created_at: string;
        owner: {
            name: string | null;
            email: string;
        };
        updated_at: string;
    }, {
        object: "note";
        title: string | null;
        id: string;
        created_at: string;
        owner: {
            name: string | null;
            email: string;
        };
        updated_at: string;
    }>, "many">>;
    hasMore: z.ZodOptional<z.ZodBoolean>;
    cursor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "list_notes";
    cursor?: string | null | undefined;
    notes?: {
        object: "note";
        title: string | null;
        id: string;
        created_at: string;
        owner: {
            name: string | null;
            email: string;
        };
        updated_at: string;
    }[] | undefined;
    hasMore?: boolean | undefined;
}, {
    error: string;
    success: boolean;
    operation: "list_notes";
    cursor?: string | null | undefined;
    notes?: {
        object: "note";
        title: string | null;
        id: string;
        created_at: string;
        owner: {
            name: string | null;
            email: string;
        };
        updated_at: string;
    }[] | undefined;
    hasMore?: boolean | undefined;
}>, z.ZodObject<{
    operation: z.ZodLiteral<"get_note">;
    success: z.ZodBoolean;
    note: z.ZodOptional<z.ZodObject<{
        id: z.ZodString;
        object: z.ZodLiteral<"note">;
        title: z.ZodNullable<z.ZodString>;
        owner: z.ZodObject<{
            name: z.ZodNullable<z.ZodString>;
            email: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            name: string | null;
            email: string;
        }, {
            name: string | null;
            email: string;
        }>;
        created_at: z.ZodString;
        updated_at: z.ZodString;
    } & {
        calendar_event: z.ZodNullable<z.ZodObject<{
            event_title: z.ZodNullable<z.ZodString>;
            invitees: z.ZodArray<z.ZodObject<{
                email: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                email: string;
            }, {
                email: string;
            }>, "many">;
            organiser: z.ZodNullable<z.ZodString>;
            calendar_event_id: z.ZodNullable<z.ZodString>;
            scheduled_start_time: z.ZodNullable<z.ZodString>;
            scheduled_end_time: z.ZodNullable<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            event_title: string | null;
            invitees: {
                email: string;
            }[];
            organiser: string | null;
            calendar_event_id: string | null;
            scheduled_start_time: string | null;
            scheduled_end_time: string | null;
        }, {
            event_title: string | null;
            invitees: {
                email: string;
            }[];
            organiser: string | null;
            calendar_event_id: string | null;
            scheduled_start_time: string | null;
            scheduled_end_time: string | null;
        }>>;
        attendees: z.ZodArray<z.ZodObject<{
            name: z.ZodNullable<z.ZodString>;
            email: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            name: string | null;
            email: string;
        }, {
            name: string | null;
            email: string;
        }>, "many">;
        folder_membership: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            object: z.ZodLiteral<"folder">;
            name: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            object: "folder";
            name: string;
            id: string;
        }, {
            object: "folder";
            name: string;
            id: string;
        }>, "many">;
        summary_text: z.ZodString;
        summary_markdown: z.ZodNullable<z.ZodString>;
        transcript: z.ZodNullable<z.ZodArray<z.ZodObject<{
            speaker: z.ZodObject<{
                source: z.ZodEnum<["microphone", "speaker"]>;
                diarization_label: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                source: "microphone" | "speaker";
                diarization_label?: string | undefined;
            }, {
                source: "microphone" | "speaker";
                diarization_label?: string | undefined;
            }>;
            text: z.ZodString;
            start_time: z.ZodString;
            end_time: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            text: string;
            speaker: {
                source: "microphone" | "speaker";
                diarization_label?: string | undefined;
            };
            start_time: string;
            end_time: string;
        }, {
            text: string;
            speaker: {
                source: "microphone" | "speaker";
                diarization_label?: string | undefined;
            };
            start_time: string;
            end_time: string;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        object: "note";
        title: string | null;
        id: string;
        created_at: string;
        owner: {
            name: string | null;
            email: string;
        };
        attendees: {
            name: string | null;
            email: string;
        }[];
        updated_at: string;
        calendar_event: {
            event_title: string | null;
            invitees: {
                email: string;
            }[];
            organiser: string | null;
            calendar_event_id: string | null;
            scheduled_start_time: string | null;
            scheduled_end_time: string | null;
        } | null;
        folder_membership: {
            object: "folder";
            name: string;
            id: string;
        }[];
        summary_text: string;
        summary_markdown: string | null;
        transcript: {
            text: string;
            speaker: {
                source: "microphone" | "speaker";
                diarization_label?: string | undefined;
            };
            start_time: string;
            end_time: string;
        }[] | null;
    }, {
        object: "note";
        title: string | null;
        id: string;
        created_at: string;
        owner: {
            name: string | null;
            email: string;
        };
        attendees: {
            name: string | null;
            email: string;
        }[];
        updated_at: string;
        calendar_event: {
            event_title: string | null;
            invitees: {
                email: string;
            }[];
            organiser: string | null;
            calendar_event_id: string | null;
            scheduled_start_time: string | null;
            scheduled_end_time: string | null;
        } | null;
        folder_membership: {
            object: "folder";
            name: string;
            id: string;
        }[];
        summary_text: string;
        summary_markdown: string | null;
        transcript: {
            text: string;
            speaker: {
                source: "microphone" | "speaker";
                diarization_label?: string | undefined;
            };
            start_time: string;
            end_time: string;
        }[] | null;
    }>>;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "get_note";
    note?: {
        object: "note";
        title: string | null;
        id: string;
        created_at: string;
        owner: {
            name: string | null;
            email: string;
        };
        attendees: {
            name: string | null;
            email: string;
        }[];
        updated_at: string;
        calendar_event: {
            event_title: string | null;
            invitees: {
                email: string;
            }[];
            organiser: string | null;
            calendar_event_id: string | null;
            scheduled_start_time: string | null;
            scheduled_end_time: string | null;
        } | null;
        folder_membership: {
            object: "folder";
            name: string;
            id: string;
        }[];
        summary_text: string;
        summary_markdown: string | null;
        transcript: {
            text: string;
            speaker: {
                source: "microphone" | "speaker";
                diarization_label?: string | undefined;
            };
            start_time: string;
            end_time: string;
        }[] | null;
    } | undefined;
}, {
    error: string;
    success: boolean;
    operation: "get_note";
    note?: {
        object: "note";
        title: string | null;
        id: string;
        created_at: string;
        owner: {
            name: string | null;
            email: string;
        };
        attendees: {
            name: string | null;
            email: string;
        }[];
        updated_at: string;
        calendar_event: {
            event_title: string | null;
            invitees: {
                email: string;
            }[];
            organiser: string | null;
            calendar_event_id: string | null;
            scheduled_start_time: string | null;
            scheduled_end_time: string | null;
        } | null;
        folder_membership: {
            object: "folder";
            name: string;
            id: string;
        }[];
        summary_text: string;
        summary_markdown: string | null;
        transcript: {
            text: string;
            speaker: {
                source: "microphone" | "speaker";
                diarization_label?: string | undefined;
            };
            start_time: string;
            end_time: string;
        }[] | null;
    } | undefined;
}>]>;
export type GranolaParams = z.output<typeof GranolaParamsSchema>;
export type GranolaParamsInput = z.input<typeof GranolaParamsSchema>;
export type GranolaResult = z.output<typeof GranolaResultSchema>;
export type GranolaListNotesParams = Extract<GranolaParams, {
    operation: 'list_notes';
}>;
export type GranolaGetNoteParams = Extract<GranolaParams, {
    operation: 'get_note';
}>;
export type GranolaNoteSummary = z.output<typeof GranolaNoteSummarySchema>;
export type GranolaNote = z.output<typeof GranolaNoteSchema>;
export type GranolaUser = z.output<typeof GranolaUserSchema>;
export type GranolaCalendarEvent = z.output<typeof GranolaCalendarEventSchema>;
export type GranolaFolder = z.output<typeof GranolaFolderSchema>;
export type GranolaTranscriptEntry = z.output<typeof GranolaTranscriptEntrySchema>;
//# sourceMappingURL=granola.schema.d.ts.map