desktop-audio-proxy
Version:
A comprehensive audio streaming solution for Tauri and Electron apps that bypasses CORS and WebKit codec issues
123 lines • 3.88 kB
TypeScript
import { type Ref, type ComputedRef } from 'vue';
import { AudioProxyClient } from './index';
import { AudioProxyOptions, StreamInfo, Environment } from './types';
/**
* Vue composable for managing audio proxy client with automatic URL processing
*/
export declare function useAudioProxy(url: Ref<string | null> | string | null, options?: AudioProxyOptions): {
audioUrl: ComputedRef<string | null>;
isLoading: ComputedRef<boolean>;
error: ComputedRef<string | null>;
streamInfo: ComputedRef<StreamInfo | {
url: string;
status: number;
headers: Record<string, string>;
canPlay: boolean;
requiresProxy: boolean;
contentType?: string | undefined;
contentLength?: string | undefined;
acceptRanges?: string | undefined;
lastModified?: string | undefined;
} | null>;
retry: () => void;
client: AudioProxyClient;
};
/**
* Vue composable for accessing audio capabilities and system information
*/
export declare function useAudioCapabilities(): {
capabilities: ComputedRef<{
supportedFormats: string[];
missingCodecs: string[];
capabilities: Record<string, string>;
environment: Environment;
electronVersion?: string;
chromiumVersion?: string;
} | {
supportedFormats: string[];
missingCodecs: string[];
capabilities: Record<string, string>;
environment: Environment;
electronVersion?: string | undefined;
chromiumVersion?: string | undefined;
} | null>;
devices: ComputedRef<{
inputDevices: Array<{
id: string;
name: string;
}>;
outputDevices: Array<{
id: string;
name: string;
}>;
} | {
inputDevices: {
id: string;
name: string;
}[];
outputDevices: {
id: string;
name: string;
}[];
} | null>;
systemSettings: ComputedRef<{
defaultInputDevice?: string;
defaultOutputDevice?: string;
masterVolume?: number;
} | {
defaultInputDevice?: string | undefined;
defaultOutputDevice?: string | undefined;
masterVolume?: number | undefined;
} | null>;
isLoading: ComputedRef<boolean>;
error: ComputedRef<string | null>;
refresh: () => Promise<void>;
};
/**
* Vue composable for checking proxy server availability
*/
export declare function useProxyStatus(options?: AudioProxyOptions): {
isAvailable: ComputedRef<boolean | null>;
isChecking: ComputedRef<boolean>;
error: ComputedRef<string | null>;
proxyUrl: ComputedRef<string>;
refresh: () => Promise<void>;
};
/**
* Vue composable for audio metadata extraction (Tauri/Electron only)
*/
export declare function useAudioMetadata(filePath: Ref<string | null> | string | null): {
metadata: ComputedRef<{
duration?: number;
bitrate?: number;
sampleRate?: number;
channels?: number;
format?: string;
} | {
duration?: number | undefined;
bitrate?: number | undefined;
sampleRate?: number | undefined;
channels?: number | undefined;
format?: string | undefined;
} | null>;
isLoading: ComputedRef<boolean>;
error: ComputedRef<string | null>;
};
/**
* Vue plugin for global audio proxy configuration
*/
export interface AudioProxyGlobalOptions {
defaultOptions?: AudioProxyOptions;
}
export declare function createAudioProxy(globalOptions?: AudioProxyGlobalOptions): {
install(app: any): void;
};
/**
* Injection key for dependency injection
*/
export declare const audioProxyInjectionKey: unique symbol;
/**
* Composable to inject the global audio proxy client
*/
export declare function useGlobalAudioProxy(): AudioProxyClient;
//# sourceMappingURL=vue.d.ts.map