Setu-TS
    Preparing search index...

    Interface PubSubSdkModule

    Declares the constructors used from the real GCP Pub/Sub SDK so the adapter can build a domain port. This is NOT an SDK-shaped structural facade — it names only what the adapter actually uses.

    interface PubSubSdkModule {
        PubSub: new (
            options: { credentials?: unknown; projectId: string },
        ) => {
            close(): Promise<void>;
            getTopics(
                options: {
                    autoPaginate: false;
                    gaxOpts: { retry: null; timeout: number };
                    pageSize: number;
                },
            ): Promise<unknown>;
            subscription(
                subscriptionName: string,
            ): {
                close(): Promise<void>;
                delete(): Promise<void>;
                getMetadata(): Promise<[{ topic?: string | null }, ...unknown[]]>;
                on(
                    event: "message",
                    handler: (
                        msg: {
                            ack: () => void;
                            attributes?: Record<string, string>;
                            data: Uint8Array;
                            id: string;
                            nack: () => void;
                            publishTime?: Date;
                        },
                    ) => void,
                ): void;
                on(event: "error", handler: (err: unknown) => void): void;
            };
            topic(
                topicName: string,
                options?: { messageOrdering?: boolean },
            ): {
                createSubscription(
                    subscriptionName: string,
                    options?: { enableMessageOrdering?: boolean },
                ): Promise<unknown[]>;
                publishMessage(
                    message: {
                        attributes?: Record<string, string>;
                        data: Uint8Array;
                        orderingKey?: string;
                    },
                ): Promise<string>;
                resumePublishing?(orderingKey: string): void;
            };
        };
    }
    Index
    PubSub: new (
        options: { credentials?: unknown; projectId: string },
    ) => {
        close(): Promise<void>;
        getTopics(
            options: {
                autoPaginate: false;
                gaxOpts: { retry: null; timeout: number };
                pageSize: number;
            },
        ): Promise<unknown>;
        subscription(
            subscriptionName: string,
        ): {
            close(): Promise<void>;
            delete(): Promise<void>;
            getMetadata(): Promise<[{ topic?: string | null }, ...unknown[]]>;
            on(
                event: "message",
                handler: (
                    msg: {
                        ack: () => void;
                        attributes?: Record<string, string>;
                        data: Uint8Array;
                        id: string;
                        nack: () => void;
                        publishTime?: Date;
                    },
                ) => void,
            ): void;
            on(event: "error", handler: (err: unknown) => void): void;
        };
        topic(
            topicName: string,
            options?: { messageOrdering?: boolean },
        ): {
            createSubscription(
                subscriptionName: string,
                options?: { enableMessageOrdering?: boolean },
            ): Promise<unknown[]>;
            publishMessage(
                message: {
                    attributes?: Record<string, string>;
                    data: Uint8Array;
                    orderingKey?: string;
                },
            ): Promise<string>;
            resumePublishing?(orderingKey: string): void;
        };
    }