import type { SupabaseClient } from '@supabase/supabase-js';
import type { ChannelAddOptions } from '../schemas/channel';
import type { Database } from '../types/supabase.types';
export declare function isChannelReadableByCaller(supabase: SupabaseClient<Database>, appId: string, channelName: string): Promise<boolean | null>;
export type ChannelAddDuplicateOutcome = 'duplicate_readable' | 'duplicate_inaccessible' | 'not_duplicate';
export declare function resolveChannelAddDuplicateOutcome(params: {
    createError: unknown;
    supabase: SupabaseClient<Database>;
    appId: string;
    channelName: string;
}, deps?: {
    isChannelReadableByCaller?: typeof isChannelReadableByCaller;
}): Promise<ChannelAddDuplicateOutcome>;
export declare function addChannelInternal(channelId: string, appId: string, options: ChannelAddOptions, silent?: boolean): Promise<{
    name: string;
}>;
export declare function addChannel(channelId: string, appId: string, options: ChannelAddOptions): Promise<void>;
